diff --git a/video/pixlib/PixLib.vcxproj b/video/pixlib/PixLib.vcxproj
deleted file mode 100644
index abd7956b5..000000000
--- a/video/pixlib/PixLib.vcxproj
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}
- $(MSBuildProjectName)
- Debug
- Win32
- {B45DFF92-A6EB-4AE8-B0F9-EDD46DE5D995}
-
-
-
- Windows10
- False
- Windows Driver
-
- WindowsApplicationForDrivers10.0
- StaticLibrary
-
-
- Windows10
- True
- Windows Driver
-
- WindowsApplicationForDrivers10.0
- StaticLibrary
-
-
- Windows10
- False
- Windows Driver
-
- WindowsApplicationForDrivers10.0
- StaticLibrary
-
-
- Windows10
- True
- Windows Driver
-
- WindowsApplicationForDrivers10.0
- StaticLibrary
-
-
-
- $(IntDir)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PixLib
-
-
- PixLib
-
-
- PixLib
-
-
- PixLib
-
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
- %(AdditionalIncludeDirectories);$(DDK_INC_PATH)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/video/pixlib/PixLib.vcxproj.Filters b/video/pixlib/PixLib.vcxproj.Filters
deleted file mode 100644
index 5083dd3b6..000000000
--- a/video/pixlib/PixLib.vcxproj.Filters
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*
- {ED57F998-4177-4E9E-8A3F-4802C10119CC}
-
-
- h;hpp;hxx;hm;inl;inc;xsd
- {EB67660E-E975-41C4-866A-D1CF0DE2537F}
-
-
- rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml
- {2CA34D96-A53A-449C-9501-1D207F11F7E0}
-
-
-
-
- Source Files
-
-
-
\ No newline at end of file
diff --git a/video/pixlib/README.md b/video/pixlib/README.md
deleted file mode 100644
index 4153a4c3d..000000000
--- a/video/pixlib/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-page_type: sample
-description: "Demonstrates how to implement the CPixel class for use by a display driver."
-languages:
-- cpp
-products:
-- windows
-- windows-wdk
----
-
-# PixLib sample
-
-The PixLib sample demonstrates how to implement the **CPixel** class for use by a display driver.
-
-For more information, see the WDK documentation topic, [CPixel Support Methods for Lightweight MIP Maps](https://docs.microsoft.com/windows-hardware/drivers/display/cpixel-support-methods-for-lightweight-mip-maps).
diff --git a/video/pixlib/pixel.cpp b/video/pixlib/pixel.cpp
deleted file mode 100644
index a1599e63b..000000000
--- a/video/pixlib/pixel.cpp
+++ /dev/null
@@ -1,695 +0,0 @@
-/*==========================================================================;
- *
- * Copyright (C) 1999-2002 Microsoft Corporation. All Rights Reserved.
- *
- * File: pixel.cpp
- * Content: Utility class for working with pixel formats
- *
- *
- ***************************************************************************/
-
-#include "strsafe.h"
-#include "pixel.hpp"
-
-#ifndef DXPIXELVER
-#define DXPIXELVER 100
-#endif
-
-IHVFormatInfo *CPixel::m_pFormatList = 0;
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::Cleanup"
-void CPixel::Cleanup()
-{
- while(m_pFormatList != 0)
- {
- IHVFormatInfo *t = m_pFormatList->m_pNext;
- delete m_pFormatList;
- m_pFormatList = t;
- }
-}
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::BytesPerPixel"
-
-UINT CPixel::BytesPerPixel(D3DFORMAT Format)
-{
- switch (DWORD(Format))
- {
- case D3DFMT_DXT1:
- // Size is negative to indicate DXT; and indicates
- // the size of the block
- return (UINT)(-8);
- case D3DFMT_DXT2:
- case D3DFMT_DXT3:
- case D3DFMT_DXT4:
- case D3DFMT_DXT5:
- // Size is negative to indicate DXT; and indicates
- // the size of the block
- return (UINT)(-16);
-
-
-#if (DXPIXELVER > 8)
- case D3DFMT_A32B32G32R32F:
- return 16;
-
- case D3DFMT_A16B16G16R16:
- case D3DFMT_Q16W16V16U16:
- case D3DFMT_A16B16G16R16F:
- case D3DFMT_G32R32F:
- case D3DFMT_MULTI2_ARGB8:
- return 8;
-#endif
-
- case D3DFMT_A8R8G8B8:
- case D3DFMT_X8R8G8B8:
- case D3DFMT_D32:
- case D3DFMT_D24S8:
- case D3DFMT_S8D24:
- case D3DFMT_X8L8V8U8:
- case D3DFMT_X4S4D24:
- case D3DFMT_D24X4S4:
- case D3DFMT_Q8W8V8U8:
- case D3DFMT_V16U16:
- case D3DFMT_A2W10V10U10:
- case D3DFMT_A2B10G10R10:
- case D3DFMT_A8B8G8R8:
- case D3DFMT_X8B8G8R8:
- case D3DFMT_G16R16:
- case D3DFMT_D24X8:
- case D3DFMT_X8D24:
- case D3DFMT_W11V11U10:
-#if (DXPIXELVER > 8)
- case D3DFMT_A2R10G10B10:
- case D3DFMT_G16R16F:
- case D3DFMT_R32F:
- case D3DFMT_D32F_LOCKABLE:
- case D3DFMT_D24FS8:
- case D3DFMT_D32_LOCKABLE:
-#endif
- return 4;
-
- case D3DFMT_R8G8B8:
- return 3;
-
- case D3DFMT_R5G6B5:
- case D3DFMT_X1R5G5B5:
- case D3DFMT_A1R5G5B5:
- case D3DFMT_A4R4G4B4:
- case D3DFMT_A8L8:
- case D3DFMT_V8U8:
- case D3DFMT_L6V5U5:
- case D3DFMT_D16:
- case D3DFMT_D16_LOCKABLE:
- case D3DFMT_D15S1:
- case D3DFMT_S1D15:
- case D3DFMT_A8P8:
- case D3DFMT_A8R3G3B2:
- case D3DFMT_UYVY:
- case D3DFMT_YUY2:
- case D3DFMT_X4R4G4B4:
-#if (DXPIXELVER > 8)
- case D3DFMT_CxV8U8:
- case D3DFMT_L16:
- case D3DFMT_R16F:
- case D3DFMT_R8G8_B8G8:
- case D3DFMT_G8R8_G8B8:
-#endif
- return 2;
-
- case D3DFMT_P8:
- case D3DFMT_L8:
- case D3DFMT_R3G3B2:
- case D3DFMT_A4L4:
- case D3DFMT_A8:
-#if (DXPIXELVER > 8)
- case D3DFMT_A1:
- case D3DFMT_S8_LOCKABLE:
-#endif
- return 1;
-
- default:
- return 0;
- };
-}; // BytesPerPixel
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputePixelStride"
-
-UINT CPixel::ComputePixelStride(D3DFORMAT Format)
-{
- UINT BPP = BytesPerPixel(Format);
- if (BPP == 0)
- {
- for(IHVFormatInfo *p = m_pFormatList; p != 0; p = p->m_pNext)
- {
- if (p->m_Format == Format)
- {
- return p->m_BPP >> 3;
- }
- }
- }
- return BPP;
-}; // ComputePixelStride
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceStride"
-
-// Figure out a stride for a particular surface based on format and width
-inline UINT CPixel::ComputeSurfaceStride(UINT cpWidth, UINT cbPixel)
-{
- UINT uStride = 0;
- ComputeSurfaceStrideChecked(cpWidth, cbPixel, &uStride);
- return uStride;
-}; // ComputeSurfaceStride
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceStrideChecked"
-
-// Figure out a stride for a particular surface based on format and width
-inline BOOL CPixel::ComputeSurfaceStrideChecked(UINT cpWidth, UINT cbPixel, UINT *pStride)
-{
- // Figure out basic (linear) stride;
- UINT64 u64Stride = (UINT64)cpWidth * (UINT64)cbPixel;
-
- // Round up to multiple of 4 (for NT; but makes sense to maximize
- // cache hits and reduce unaligned accesses)
- //
- // NOTE: Also necessary for UYVY and YUY2 formats that this round
- // up by at least a multiple of 4.
- u64Stride = (u64Stride + 3) & ~3; //safe since cbPixel cannot be 4G
-
- if (u64Stride <= MAXALLOCSIZE)
- {
- *pStride = (UINT)u64Stride;
- return TRUE;
- }
- return FALSE;
-}; // ComputeSurfaceStride
-
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceSize"
-
-UINT CPixel::ComputeSurfaceSize(UINT cpWidth,
- UINT cpHeight,
- UINT cbPixel)
-{
- UINT uSize;
- ComputeSurfaceSizeChecked(cpWidth, cpHeight, cbPixel, &uSize);
- return uSize;
-} // ComputeSurfaceSize
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceSizeChecked"
-
-BOOL CPixel::ComputeSurfaceSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cbPixel,
- UINT *pSize)
-
-{
- UINT uStride;
- UINT64 uSize64;
- if (ComputeSurfaceStrideChecked(cpWidth, cbPixel, &uStride))
- {
- uSize64 = (UINT64)cpHeight * (UINT64)uStride;
- if (uSize64 <= MAXALLOCSIZE)
- {
- *pSize = (UINT)uSize64;
- return TRUE;
- }
- }
-
- *pSize = 0U;
- return FALSE;
-} // ComputeSurfaceSize
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeMipMapSize"
-
-UINT CPixel::ComputeMipMapSize(UINT cpWidth,
- UINT cpHeight,
- UINT cLevels,
- D3DFORMAT Format)
-{
- UINT uSize = 0; // initialize to zero to keep prefix happy win7: 185027
- ComputeMipMapSizeChecked(cpWidth, cpHeight, cLevels, Format, &uSize);
- return uSize;
-} // ComputeMipMapSize
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeMipMapSizeChecked"
-
-BOOL CPixel::ComputeMipMapSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cLevels,
- D3DFORMAT Format,
- UINT *pSize)
-{
- UINT cbPixel = ComputePixelStride(Format);
-
- // Adjust pixel->block if necessary
- BOOL isDXT = IsDXT(cbPixel);
- if (isDXT)
- cbPixel *= (UINT)-1;
-
- UINT64 cbSize = 0;
- if (cpWidth > MAXALLOCSIZE-3 || cpHeight > MAXALLOCSIZE-3)
- return FALSE;
-
- for (UINT i = 0; i < cLevels; i++)
- {
- UINT cbMipSize;
- // Figure out the size for
- // each level of the mip-map
- if (isDXT)
- {
- if (!ComputeSurfaceSizeChecked((cpWidth+3)/4, (cpHeight+3)/4, cbPixel, &cbMipSize))
- return FALSE;
- }
- else
- {
- if (!ComputeSurfaceSizeChecked(cpWidth, cpHeight, cbPixel, &cbMipSize))
- return FALSE;
- }
- cbSize += cbMipSize;
- // Shrink width and height by half; clamp to 1 pixel
- if (cpWidth > 1)
- cpWidth >>= 1;
- if (cpHeight > 1)
- cpHeight >>= 1;
- }
- if (cbSize <= MAXALLOCSIZE)
- {
- *pSize = (UINT)cbSize;
- return TRUE;
- }
- return FALSE;
-
-} // ComputeMipMapSize
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeMipVolumeSize"
-
-UINT CPixel::ComputeMipVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- UINT cLevels,
- D3DFORMAT Format)
-{
- UINT uSize = 0; // To keep prefix happy win7: 185029
- ComputeMipVolumeSizeChecked(cpWidth, cpHeight, cpDepth, cLevels, Format, &uSize);
- return uSize;
-} // ComputeMipVolumeSize
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeMipVolumeSizeChecked"
-
-BOOL CPixel::ComputeMipVolumeSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- UINT cLevels,
- D3DFORMAT Format,
- UINT *pSize)
-{
- UINT cbPixel = ComputePixelStride(Format);
-
- // Adjust pixel->block if necessary
- BOOL isDXT = IsDXT(cbPixel);
-
- if (isDXT)
- cbPixel *= (UINT)-1;
-
- UINT64 cbSize = 0;
-
- if (cpWidth > MAXALLOCSIZE-3 || cpHeight > MAXALLOCSIZE-3 || cpDepth > MAXALLOCSIZE-3)
- return FALSE;
-
- for (UINT i = 0; i < cLevels; i++)
- {
- // Figure out the size for
- // each level of the mip-volume
- UINT Depth = cpDepth;
- UINT64 cbLevelSize;
- UINT cbSliceSize;
- if (isDXT)
- {
- if (!ComputeSurfaceSizeChecked((cpWidth+3)/4, (cpHeight+3)/4, cbPixel, &cbSliceSize))
- return FALSE;
- }
- else
- {
- if (!ComputeSurfaceSizeChecked(cpWidth, cpHeight, cbPixel, &cbSliceSize))
- return FALSE;
- }
- cbLevelSize = (UINT64)Depth * (UINT64)cbSliceSize;
- if (cbLevelSize > MAXALLOCSIZE)
- return FALSE;
- cbSize += cbLevelSize;
-
- // Shrink width and height by half; clamp to 1 pixel
- if (cpWidth > 1)
- cpWidth >>= 1;
- if (cpHeight > 1)
- cpHeight >>= 1;
- if (cpDepth > 1)
- cpDepth >>= 1;
- }
-
- if (cbSize <= MAXALLOCSIZE)
- {
- *pSize = (UINT)cbSize;
- return TRUE;
- }
- return FALSE;
-
-} // ComputeMipVolumeSize
-
-// Given a surface desc, a level, and pointer to
-// bits (pBits in the LockedRectData) and a sub-rect,
-// this will fill in the pLockedRectData structure
-void CPixel::ComputeMipMapOffset(const D3DSURFACE_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData)
-{
- DXGASSERT(pBits != NULL);
- DXGASSERT(pLockedRectData != NULL);
- DXGASSERT(iLevel < 32);
- DXGASSERT(pDescTopLevel != NULL);
- DXGASSERT(0 != ComputePixelStride(pDescTopLevel->Format));
- DXGASSERT(pDescTopLevel->Width > 0);
- DXGASSERT(pDescTopLevel->Height > 0);
-
- // CONSIDER: This is slow; and we can do a much better
- // job for the non-compressed/wacky cases.
- UINT cbOffset = 0;
- UINT cbPixel = ComputePixelStride(pDescTopLevel->Format);
- UINT cpWidth = pDescTopLevel->Width;
- UINT cpHeight = pDescTopLevel->Height;
-
- // Adjust pixel->block if necessary
- BOOL isDXT = IsDXT(cbPixel);
- if (isDXT)
- cbPixel *= (UINT)-1;
- BOOL OneBitPerPixelFormat = FALSE;
-#if (DXPIXELVER > 8)
- OneBitPerPixelFormat = pDescTopLevel->Format == D3DFMT_A1;
- if (OneBitPerPixelFormat)
- {
- cbPixel = 1;
- }
-#endif
- for (UINT i = 0; i < iLevel; i++)
- {
- if (isDXT)
- cbOffset += ComputeSurfaceSize((cpWidth+3)/4, (cpHeight+3)/4, cbPixel);
- else
- if (OneBitPerPixelFormat)
- cbOffset += ComputeSurfaceSize((cpWidth + 7) >> 3, cpHeight, cbPixel);
- else
- cbOffset += ComputeSurfaceSize(cpWidth, cpHeight, cbPixel);
-
- // Shrink width and height by half; clamp to 1 pixel
- if (cpWidth > 1)
- cpWidth >>= 1;
- if (cpHeight > 1)
- cpHeight >>= 1;
- }
- if (isDXT)
- cpWidth = (cpWidth+3)/4;
- else
- if (OneBitPerPixelFormat)
- cpWidth = (cpWidth+7)/8;
-
-
- // For DXTs, the pitch is the number of bytes
- // for a single row of blocks; which is the same
- // thing as the normal routine
- pLockedRectData->Pitch = ComputeSurfaceStride(cpWidth,
- cbPixel);
- DXGASSERT(pLockedRectData->Pitch != 0);
-
- // Don't adjust for Rect for DXT formats
- if (pRect)
- {
- if (isDXT)
- {
- DXGASSERT((pRect->top & 3) == 0);
- DXGASSERT((pRect->left & 3) == 0);
- cbOffset += (pRect->top / 4) * pLockedRectData->Pitch +
- (pRect->left / 4) * cbPixel;
- }
- else
- if (OneBitPerPixelFormat)
- {
- // Assume that left is always 8 pixels aligned
- cbOffset += pRect->top * pLockedRectData->Pitch +
- (pRect->left >> 3);
- }
- else
- {
- cbOffset += pRect->top * pLockedRectData->Pitch +
- pRect->left * cbPixel;
- }
- }
-
- pLockedRectData->pBits = pBits + cbOffset;
-
-} // ComputeMipMapOffset
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeMipVolumeOffset"
-
-// MipVolume version of ComputeMipMapOffset
-void CPixel::ComputeMipVolumeOffset(const D3DVOLUME_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST D3DBOX *pBox,
- D3DLOCKED_BOX *pLockedBoxData)
-{
- DXGASSERT(pBits != NULL);
- DXGASSERT(pLockedBoxData != NULL);
- DXGASSERT(iLevel < 32);
- DXGASSERT(pDescTopLevel != NULL);
- DXGASSERT(0 != ComputePixelStride(pDescTopLevel->Format));
- DXGASSERT(pDescTopLevel->Width > 0);
- DXGASSERT(pDescTopLevel->Height > 0);
- DXGASSERT(pDescTopLevel->Depth > 0);
-
- UINT cbOffset = 0;
- UINT cbPixel = ComputePixelStride(pDescTopLevel->Format);
- UINT cpWidth = pDescTopLevel->Width;
- UINT cpHeight = pDescTopLevel->Height;
- UINT cpDepth = pDescTopLevel->Depth;
-
- // Adjust pixel->block if necessary
- BOOL isDXT = IsDXT(cbPixel);
-
- if (isDXT)
- cbPixel *= (UINT)-1;
-
- for (UINT i = 0; i < iLevel; i++)
- {
- UINT Depth = cpDepth;
- if (isDXT)
- cbOffset += Depth * ComputeSurfaceSize((cpWidth+3)/4, (cpHeight+3)/4, cbPixel);
- else
- cbOffset += Depth * ComputeSurfaceSize(cpWidth, cpHeight, cbPixel);
-
- // Shrink width and height by half; clamp to 1 pixel
- if (cpWidth > 1)
- cpWidth >>= 1;
- if (cpHeight > 1)
- cpHeight >>= 1;
- if (cpDepth > 1)
- cpDepth >>= 1;
- }
-
- if (isDXT)
- {
- cpWidth = (cpWidth+3)/4;
- cpHeight = (cpHeight+3)/4;
- }
-
- // For DXTs, the row pitch is the number of bytes
- // for a single row of blocks; which is the same
- // thing as the normal routine
- pLockedBoxData->RowPitch = ComputeSurfaceStride(cpWidth,
- cbPixel);
- DXGASSERT(pLockedBoxData->RowPitch != 0);
-
- // For DXVs the slice pitch is the number of bytes
- // for a single plane of blocks; which is the same thing
- // as the normal routine
- pLockedBoxData->SlicePitch = ComputeSurfaceSize(cpWidth,
- cpHeight,
- cbPixel);
- DXGASSERT(pLockedBoxData->SlicePitch != 0);
-
- // Adjust for Box
- if (pBox)
- {
- UINT iStride = pLockedBoxData->RowPitch;
- UINT iSlice = pLockedBoxData->SlicePitch;
- if (isDXT)
- {
- cbOffset += (pBox->Front) * iSlice;
-
- DXGASSERT((pBox->Top & 3) == 0);
- DXGASSERT((pBox->Left & 3) == 0);
- cbOffset += (pBox->Top / 4) * iStride +
- (pBox->Left / 4) * cbPixel;
- }
- else
- {
- cbOffset += pBox->Front * iSlice +
- pBox->Top * iStride +
- pBox->Left * cbPixel;
- }
- }
-
- pLockedBoxData->pBits = pBits + cbOffset;
-
-} // ComputeMipVolumeOffset
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::Register"
-
-HRESULT CPixel::Register(D3DFORMAT Format, DWORD BPP)
-{
- DXGASSERT(BPP != 0);
-
- // Do not register duplicates
- IHVFormatInfo *p;
- for(p = m_pFormatList; p != 0; p = p->m_pNext)
- {
- if (p->m_Format == Format)
- {
- return S_OK;
- }
- }
-
- // Not found, add to registry.
- // This allocation will be leaked, but since
- // we don't expect to have a large number of
- // IHV formats, the leak is not a big deal.
- // Also, the leak will be immediately recovered
- // upon process exit.
- IHVFormatInfo *p2 = new IHVFormatInfo;
- if (p2 == 0)
- {
- return E_OUTOFMEMORY;
- }
- p2->m_Format = Format;
- p2->m_BPP = BPP;
- p2->m_pNext = m_pFormatList;
- m_pFormatList = p2;
-
- return S_OK;
-}
-
-
-extern "C" UINT CPixel__ComputeSurfaceSize(UINT cpWidth,
- UINT cpHeight,
- D3DFORMAT Format)
-{
- return CPixel::ComputeSurfaceSize(cpWidth, cpHeight, Format);
-}
-
-extern "C" UINT CPixel__ComputeVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- D3DFORMAT Format)
-{
- return CPixel::ComputeVolumeSize(cpWidth, cpHeight, cpDepth, Format);
-}
-
-extern "C" UINT CPixel__ComputeMipMapSize(UINT cpWidth,
- UINT cpHeight,
- UINT cLevels,
- D3DFORMAT Format)
-{
- return CPixel::ComputeMipMapSize(cpWidth, cpHeight, cLevels, Format);
-}
-
-extern "C" UINT CPixel__ComputeMipVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- UINT cLevels,
- D3DFORMAT Format)
-{
- return CPixel::ComputeMipVolumeSize(cpWidth, cpHeight, cpDepth, cLevels, Format);
-}
-
-extern "C" void CPixel__ComputeMipMapOffset(const D3DSURFACE_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData)
-{
- CPixel::ComputeMipMapOffset(pDescTopLevel, iLevel, pBits, pRect, pLockedRectData);
-}
-
-extern "C" void CPixel__ComputeMipVolumeOffset(const D3DVOLUME_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST D3DBOX *pBox,
- D3DLOCKED_BOX *pLockedBoxData)
-{
- CPixel::ComputeMipVolumeOffset(pDescTopLevel, iLevel, pBits, pBox, pLockedBoxData);
-}
-
-extern "C" void CPixel__ComputeSurfaceOffset(const D3DSURFACE_DESC *pDesc,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData)
-{
- CPixel::ComputeSurfaceOffset(pDesc, pBits, pRect, pLockedRectData);
-}
-
-extern "C" UINT CPixel__ComputePixelStride(D3DFORMAT Format)
-{
- return CPixel::ComputePixelStride(Format);
-}
-
-extern "C" void CPixel__AdjustForDXT(UINT *pcpWidth,
- UINT *pcpHeight,
- UINT *pcbPixel)
-{
- CPixel::AdjustForDXT(pcpWidth, pcpHeight, pcbPixel);
-}
-
-extern "C" BOOL CPixel__IsDXT(D3DFORMAT Format)
-{
- return CPixel::IsDXT(Format);
-}
-
-extern "C" UINT CPixel__BytesPerPixel(D3DFORMAT Format)
-{
- return CPixel::BytesPerPixel(Format);
-}
-
-extern "C" HRESULT CPixel__Register(D3DFORMAT Format, DWORD BPP)
-{
- return CPixel::Register(Format, BPP);
-}
-
-extern "C" void CPixel__Cleanup()
-{
- CPixel::Cleanup();
-}
-
-extern "C" UINT CPixel__ComputeSurfaceStride(UINT cpWidth, UINT cbPixel)
-{
- return CPixel::ComputeSurfaceStride(cpWidth, cbPixel);
-}
-
-
-// End of file : pixel.cpp
-
diff --git a/video/pixlib/pixel.hpp b/video/pixlib/pixel.hpp
deleted file mode 100644
index a23a79f62..000000000
--- a/video/pixlib/pixel.hpp
+++ /dev/null
@@ -1,365 +0,0 @@
-/*==========================================================================;
- *
- * Copyright (C) 1999-2002 Microsoft Corporation. All Rights Reserved.
- *
- * File: pixel.hpp
- * Content: Utility class for working with pixel formats
- *
- *
- ***************************************************************************/
-
-#ifdef __cplusplus
-
-#ifndef __PIXEL_HPP_CPP__
-#define __PIXEL_HPP_CPP__
-
-#ifndef DXPIXELVER
-#define DXPIXELVER 100
-#endif
-
-#ifndef DXGASSERT
-#define DXGASSERT( x ) _Analysis_assume_( x );
-#endif
-
-struct IHVFormatInfo
-{
- D3DFORMAT m_Format;
- DWORD m_BPP;
- IHVFormatInfo *m_pNext;
-};
-
-//2GB max allocation size
-#define MAXALLOCSIZE 0x80000000
-
-// This is a utility class that implements useful helpers for
-// allocating and accessing various pixel formats. All methods
-// are static and hence should be accessed as follows:
-// e.g. CPixel::LockOffset(...)
-//
-
-class CPixel
-{
-public:
- // Allocate helpers
-
- // Determine the amount of memory that is needed to
- // allocate various things..
- static UINT ComputeSurfaceSize(UINT cpWidth,
- UINT cpHeight,
- D3DFORMAT Format);
-
- static UINT ComputeVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- D3DFORMAT Format);
-
-
- static UINT ComputeMipMapSize(UINT cpWidth,
- UINT cpHeight,
- UINT cLevels,
- D3DFORMAT Format);
-
- static UINT ComputeMipVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- UINT cLevels,
- D3DFORMAT Format);
-
- static BOOL ComputeSurfaceSizeChecked(UINT cpWidth,
- UINT cpHeight,
- D3DFORMAT Format,
- UINT *pSize);
-
- static BOOL ComputeVolumeSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- D3DFORMAT Format,
- UINT *pSize);
-
-
- static BOOL ComputeMipMapSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cLevels,
- D3DFORMAT Format,
- UINT *pSize);
-
- static BOOL ComputeMipVolumeSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- UINT cLevels,
- D3DFORMAT Format,
- UINT *pSize);
-
-
- // Lock helpers
-
- // Given a surface desc, a level, and pointer to
- // bits (pBits in the LockedRectData) and a sub-rect,
- // this will fill in the pLockedRectData structure
- static void ComputeMipMapOffset(const D3DSURFACE_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData);
-
- // MipVolume version of ComputeMipMapOffset
- static void ComputeMipVolumeOffset(const D3DVOLUME_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST D3DBOX *pBox,
- D3DLOCKED_BOX *pLockedBoxData);
-
- // Surface version of ComputeMipMapOffset
- static void ComputeSurfaceOffset(const D3DSURFACE_DESC *pDesc,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData);
-
- // Pixel Stride will return negative for DXT formats
- // Call AdjustForDXT to work with things at the block level
- static UINT ComputePixelStride(D3DFORMAT Format);
-
- // This will adjust cbPixel
- // to pixels per block; and width and height will
- // be adjusted to pixels. Assumes the IsDXT(cbPixel).
- static void AdjustForDXT(UINT *pcpWidth,
- UINT *pcpHeight,
- UINT *pcbPixel);
-
- // returns TRUE if cbPixel is "negative" i.e. DXT/V group
- static BOOL IsDXT(UINT cbPixel);
-
- // returns TRUE if format is one of the DXT/V group
- static BOOL IsDXT(D3DFORMAT Format);
-
- static UINT BytesPerPixel(D3DFORMAT Format);
-
- // Register format for later lookup
- static HRESULT Register(D3DFORMAT Format, DWORD BPP);
-
- // Cleanup registry
- static void Cleanup();
-
- static UINT ComputeSurfaceStride(UINT cpWidth, UINT cbPixel);
-
- static BOOL ComputeSurfaceStrideChecked(UINT cpWidth, UINT cbPixel, UINT *pStride);
-
-
-private:
- // Internal functions
-
- static UINT ComputeSurfaceSize(UINT cpWidth,
- UINT cpHeight,
- UINT cbPixel);
-
- static BOOL ComputeSurfaceSizeChecked(UINT cpWidth,
- UINT cpHeight,
- UINT cbPixel,
- UINT *pSize);
-
-
- static IHVFormatInfo *m_pFormatList;
-
-}; // CPixel
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceOffset"
-
-inline void CPixel::ComputeSurfaceOffset(const D3DSURFACE_DESC *pDesc,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData)
-{
- ComputeMipMapOffset(pDesc, 0, pBits, pRect, pLockedRectData);
-} // ComputeSurfaceOffset
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceSize"
-
-inline UINT CPixel::ComputeSurfaceSize(UINT cpWidth,
- UINT cpHeight,
- D3DFORMAT Format)
-{
- UINT uSize = 0; // initialize to zero to keep prefix happy win7: 185026
- ComputeSurfaceSizeChecked(cpWidth, cpHeight, Format, &uSize);
- return uSize;
-} // ComputeSurfaceSize
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeSurfaceSizeChecked"
-
-inline BOOL CPixel::ComputeSurfaceSizeChecked(UINT cpWidth,
- UINT cpHeight,
- D3DFORMAT Format,
- UINT *uSize)
-{
- UINT cbPixel = ComputePixelStride(Format);
-
- // Adjust pixel->block if necessary
- BOOL isDXT = IsDXT(cbPixel);
- if (isDXT)
- {
- AdjustForDXT(&cpWidth, &cpHeight, &cbPixel);
- }
-#if (DXPIXELVER > 8)
- else
- if (Format == D3DFMT_A1)
- {
- cpWidth = (cpWidth + 7) >> 3;
- cbPixel = 1;
- }
-#endif
-
- return ComputeSurfaceSizeChecked(cpWidth,
- cpHeight,
- cbPixel,
- uSize);
-} // ComputeSurfaceSize
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::AdjustForDXT"
-inline void CPixel::AdjustForDXT(UINT *pcpWidth,
- UINT *pcpHeight,
- UINT *pcbPixel)
-{
- DXGASSERT(pcbPixel);
- DXGASSERT(pcpWidth);
- DXGASSERT(pcpHeight);
- DXGASSERT(IsDXT(*pcbPixel));
-
- // Adjust width and height for DXT formats to be in blocks
- // instead of pixels. Blocks are 4x4 pixels.
- *pcpWidth = (*pcpWidth + 3) / 4;
- *pcpHeight = (*pcpHeight + 3) / 4;
-
- // Negate the pcbPixel to determine bytes per block
- *pcbPixel *= (UINT)-1;
-
- // We only know of two DXT formats right now...
- DXGASSERT(*pcbPixel == 8 || *pcbPixel == 16);
-
-} // CPixel::AdjustForDXT
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::ComputeVolumeSize"
-
-inline UINT CPixel::ComputeVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- D3DFORMAT Format)
-{
- UINT cbPixel = ComputePixelStride(Format);
-
- if (IsDXT(cbPixel))
- {
- AdjustForDXT(&cpWidth, &cpHeight, &cbPixel);
- }
-
- return cpDepth * ComputeSurfaceSize(cpWidth, cpHeight, cbPixel);
-} // ComputeVolumeSize
-
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::IsDXT(cbPixel)"
-
-// returns TRUE if cbPixel is "negative"
-inline BOOL CPixel::IsDXT(UINT cbPixel)
-{
- if (((INT)cbPixel) < 0)
- return TRUE;
- else
- return FALSE;
-} // IsDXT
-
-#undef DPF_MODNAME
-#define DPF_MODNAME "CPixel::IsDXT(format)"
-
-// returns TRUE if this is a linear format
-// i.e. DXT or DXV
-inline BOOL CPixel::IsDXT(D3DFORMAT Format)
-{
- // CONSIDER: This is a duplication of Requires4x4 function
- switch (Format)
- {
- // normal DXTs
- case D3DFMT_DXT1:
- case D3DFMT_DXT2:
- case D3DFMT_DXT3:
- case D3DFMT_DXT4:
- case D3DFMT_DXT5:
- return TRUE;
- }
-
- return FALSE;
-} // IsDXT
-
-
-#endif // __PIXEL_HPP_CPP__
-
-#else
-
-#ifndef __PIXEL_HPP_C__
-#define __PIXEL_HPP_C__
-
-UINT CPixel__ComputeSurfaceSize(UINT cpWidth,
- UINT cpHeight,
- D3DFORMAT Format);
-
-UINT CPixel__ComputeVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- D3DFORMAT Format);
-
-UINT CPixel__ComputeMipMapSize(UINT cpWidth,
- UINT cpHeight,
- UINT cLevels,
- D3DFORMAT Format);
-
-UINT CPixel__ComputeMipVolumeSize(UINT cpWidth,
- UINT cpHeight,
- UINT cpDepth,
- UINT cLevels,
- D3DFORMAT Format);
-
-void CPixel__ComputeMipMapOffset(const D3DSURFACE_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData);
-
-void CPixel__ComputeMipVolumeOffset(const D3DVOLUME_DESC *pDescTopLevel,
- UINT iLevel,
- BYTE *pBits,
- CONST D3DBOX *pBox,
- D3DLOCKED_BOX *pLockedBoxData);
-
-void CPixel__ComputeSurfaceOffset(const D3DSURFACE_DESC *pDesc,
- BYTE *pBits,
- CONST RECT *pRect,
- D3DLOCKED_RECT *pLockedRectData);
-
-UINT CPixel__ComputePixelStride(D3DFORMAT Format);
-
-void CPixel__AdjustForDXT(UINT *pcpWidth,
- UINT *pcpHeight,
- UINT *pcbPixel);
-
-BOOL CPixel__IsDXT(D3DFORMAT Format);
-
-UINT CPixel__BytesPerPixel(D3DFORMAT Format);
-
-HRESULT CPixel__Register(D3DFORMAT Format, DWORD BPP);
-
-void CPixel__Cleanup();
-
-UINT CPixel__ComputeSurfaceStride(UINT cpWidth, UINT cbPixel);
-
-
-#endif // __PIXEL_HPP_C__
-
-#endif
-
-
diff --git a/video/pixlib/pixlib.cpp b/video/pixlib/pixlib.cpp
deleted file mode 100644
index df7616411..000000000
--- a/video/pixlib/pixlib.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-
-#include "d3d9.h"
-#include "ddraw.h"
-#include "dx95type.h"
-#include "d3dnthal.h"
-
-#include "pixel.cpp"
-
diff --git a/video/pixlib/pixlib.sln b/video/pixlib/pixlib.sln
deleted file mode 100644
index f34f570ae..000000000
--- a/video/pixlib/pixlib.sln
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
-MinimumVisualStudioVersion = 12.0
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PixLib", "PixLib.vcxproj", "{59DE6E25-B0B8-49FF-A952-5D1412A6973B}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- Debug|x64 = Debug|x64
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Debug|Win32.ActiveCfg = Debug|Win32
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Debug|Win32.Build.0 = Debug|Win32
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Release|Win32.ActiveCfg = Release|Win32
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Release|Win32.Build.0 = Release|Win32
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Debug|x64.ActiveCfg = Debug|x64
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Debug|x64.Build.0 = Debug|x64
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Release|x64.ActiveCfg = Release|x64
- {59DE6E25-B0B8-49FF-A952-5D1412A6973B}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal