|  | // Copyright 2016 The SwiftShader Authors. All Rights Reserved. | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //    http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | #ifndef D3D8_Capabilities_hpp | 
|  | #define D3D8_Capabilities_hpp | 
|  |  | 
|  | #include <d3d8.h> | 
|  |  | 
|  | namespace D3D8 | 
|  | { | 
|  | struct Capabilities | 
|  | { | 
|  | struct Surface | 
|  | { | 
|  | struct RenderTarget | 
|  | { | 
|  | static bool R8G8B8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool A8R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | }; | 
|  |  | 
|  | struct DepthStencil | 
|  | { | 
|  | static bool D32; | 
|  | static bool D24S8; | 
|  | static bool D24X8; | 
|  | static bool D16; | 
|  | }; | 
|  |  | 
|  | static bool A8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Paletted formats | 
|  | static bool P8; | 
|  | static bool A8P8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | // Compressed formats | 
|  | static bool DXT1; | 
|  | static bool DXT2; | 
|  | static bool DXT3; | 
|  | static bool DXT4; | 
|  | static bool DXT5; | 
|  | // Bump map formats | 
|  | static bool V8U8; | 
|  | static bool L6V5U5; | 
|  | static bool X8L8V8U8; | 
|  | static bool Q8W8V8U8; | 
|  | static bool V16U16; | 
|  | static bool A2W10V10U10; | 
|  | // Luminance formats | 
|  | static bool L8; | 
|  | static bool A4L4; | 
|  | static bool A8L8; | 
|  | }; | 
|  |  | 
|  | struct Volume | 
|  | { | 
|  | static bool A8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Paletted formats | 
|  | static bool P8; | 
|  | static bool A8P8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | // Compressed formats | 
|  | static bool DXT1; | 
|  | static bool DXT2; | 
|  | static bool DXT3; | 
|  | static bool DXT4; | 
|  | static bool DXT5; | 
|  | // Bump map formats | 
|  | static bool V8U8; | 
|  | static bool L6V5U5; | 
|  | static bool X8L8V8U8; | 
|  | static bool Q8W8V8U8; | 
|  | static bool V16U16; | 
|  | static bool A2W10V10U10; | 
|  | // Luminance formats | 
|  | static bool L8; | 
|  | static bool A4L4; | 
|  | static bool A8L8; | 
|  | }; | 
|  |  | 
|  | struct CubeMap | 
|  | { | 
|  | struct RenderTarget | 
|  | { | 
|  | static bool R8G8B8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool A8R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | }; | 
|  |  | 
|  | struct DepthStencil | 
|  | { | 
|  | static bool D32; | 
|  | static bool D24S8; | 
|  | static bool D24X8; | 
|  | static bool D16; | 
|  | }; | 
|  |  | 
|  | static bool A8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Paletted formats | 
|  | static bool P8; | 
|  | static bool A8P8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | // Compressed formats | 
|  | static bool DXT1; | 
|  | static bool DXT2; | 
|  | static bool DXT3; | 
|  | static bool DXT4; | 
|  | static bool DXT5; | 
|  | // Bump map formats | 
|  | static bool V8U8; | 
|  | static bool L6V5U5; | 
|  | static bool X8L8V8U8; | 
|  | static bool Q8W8V8U8; | 
|  | static bool V16U16; | 
|  | static bool A2W10V10U10; | 
|  | // Luminance formats | 
|  | static bool L8; | 
|  | static bool A4L4; | 
|  | static bool A8L8; | 
|  | }; | 
|  |  | 
|  | struct VolumeTexture | 
|  | { | 
|  | static bool A8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Paletted formats | 
|  | static bool P8; | 
|  | static bool A8P8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | // Compressed formats | 
|  | static bool DXT1; | 
|  | static bool DXT2; | 
|  | static bool DXT3; | 
|  | static bool DXT4; | 
|  | static bool DXT5; | 
|  | // Bump map formats | 
|  | static bool V8U8; | 
|  | static bool L6V5U5; | 
|  | static bool X8L8V8U8; | 
|  | static bool Q8W8V8U8; | 
|  | static bool V16U16; | 
|  | static bool A2W10V10U10; | 
|  | // Luminance formats | 
|  | static bool L8; | 
|  | static bool A4L4; | 
|  | static bool A8L8; | 
|  | }; | 
|  |  | 
|  | struct Texture | 
|  | { | 
|  | struct RenderTarget | 
|  | { | 
|  | static bool R8G8B8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool A8R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | }; | 
|  |  | 
|  | struct DepthStencil | 
|  | { | 
|  | static bool D32; | 
|  | static bool D24S8; | 
|  | static bool D24X8; | 
|  | static bool D16; | 
|  | }; | 
|  |  | 
|  | static bool A8; | 
|  | static bool R5G6B5; | 
|  | static bool X1R5G5B5; | 
|  | static bool A1R5G5B5; | 
|  | static bool A4R4G4B4; | 
|  | static bool R3G3B2; | 
|  | static bool A8R3G3B2; | 
|  | static bool X4R4G4B4; | 
|  | static bool R8G8B8; | 
|  | static bool X8R8G8B8; | 
|  | static bool A8R8G8B8; | 
|  | static bool A8B8G8R8; | 
|  | static bool X8B8G8R8; | 
|  | // Paletted formats | 
|  | static bool P8; | 
|  | static bool A8P8; | 
|  | // Integer HDR formats | 
|  | static bool G16R16; | 
|  | static bool A2B10G10R10; | 
|  | // Compressed formats | 
|  | static bool DXT1; | 
|  | static bool DXT2; | 
|  | static bool DXT3; | 
|  | static bool DXT4; | 
|  | static bool DXT5; | 
|  | // Bump map formats | 
|  | static bool V8U8; | 
|  | static bool L6V5U5; | 
|  | static bool X8L8V8U8; | 
|  | static bool Q8W8V8U8; | 
|  | static bool V16U16; | 
|  | static bool A2W10V10U10; | 
|  | // Luminance formats | 
|  | static bool L8; | 
|  | static bool A4L4; | 
|  | static bool A8L8; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | extern unsigned int pixelShaderVersion; | 
|  | extern unsigned int vertexShaderVersion; | 
|  |  | 
|  | extern unsigned int textureMemory; | 
|  | extern unsigned int maxAnisotropy; | 
|  | } | 
|  |  | 
|  | #endif   // D3D8_Capabilities_hpp |