|  | // 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 sw_Constants_hpp | 
|  | #define sw_Constants_hpp | 
|  |  | 
|  | #include "Common/Types.hpp" | 
|  |  | 
|  | namespace sw | 
|  | { | 
|  | struct Constants | 
|  | { | 
|  | Constants(); | 
|  |  | 
|  | unsigned int transposeBit0[16]; | 
|  | unsigned int transposeBit1[16]; | 
|  | unsigned int transposeBit2[16]; | 
|  |  | 
|  | ushort4 cWeight[17]; | 
|  | float4 uvWeight[17]; | 
|  | float4 uvStart[17]; | 
|  |  | 
|  | unsigned int occlusionCount[16]; | 
|  |  | 
|  | byte8 maskB4Q[16]; | 
|  | byte8 invMaskB4Q[16]; | 
|  | word4 maskW4Q[16]; | 
|  | word4 invMaskW4Q[16]; | 
|  | dword4 maskD4X[16]; | 
|  | dword4 invMaskD4X[16]; | 
|  | qword maskQ0Q[16]; | 
|  | qword maskQ1Q[16]; | 
|  | qword maskQ2Q[16]; | 
|  | qword maskQ3Q[16]; | 
|  | qword invMaskQ0Q[16]; | 
|  | qword invMaskQ1Q[16]; | 
|  | qword invMaskQ2Q[16]; | 
|  | qword invMaskQ3Q[16]; | 
|  | dword4 maskX0X[16]; | 
|  | dword4 maskX1X[16]; | 
|  | dword4 maskX2X[16]; | 
|  | dword4 maskX3X[16]; | 
|  | dword4 invMaskX0X[16]; | 
|  | dword4 invMaskX1X[16]; | 
|  | dword4 invMaskX2X[16]; | 
|  | dword4 invMaskX3X[16]; | 
|  | dword2 maskD01Q[16]; | 
|  | dword2 maskD23Q[16]; | 
|  | dword2 invMaskD01Q[16]; | 
|  | dword2 invMaskD23Q[16]; | 
|  | qword2 maskQ01X[16]; | 
|  | qword2 maskQ23X[16]; | 
|  | qword2 invMaskQ01X[16]; | 
|  | qword2 invMaskQ23X[16]; | 
|  | word4 maskW01Q[4]; | 
|  | word4 invMaskW01Q[4]; | 
|  | dword4 maskD01X[4]; | 
|  | dword4 invMaskD01X[4]; | 
|  | word4 mask565Q[8]; | 
|  | word4 invMask565Q[8]; | 
|  |  | 
|  | unsigned short sRGBtoLinear8_12[256]; | 
|  | unsigned short sRGBtoLinear6_12[64]; | 
|  | unsigned short sRGBtoLinear5_12[32]; | 
|  |  | 
|  | unsigned short linearToSRGB12_16[4096]; | 
|  | unsigned short sRGBtoLinear12_16[4096]; | 
|  |  | 
|  | // Centroid parameters | 
|  | float4 sampleX[4][16]; | 
|  | float4 sampleY[4][16]; | 
|  | float4 weight[16]; | 
|  |  | 
|  | // Fragment offsets | 
|  | int Xf[4]; | 
|  | int Yf[4]; | 
|  |  | 
|  | float4 X[4]; | 
|  | float4 Y[4]; | 
|  |  | 
|  | dword maxX[16]; | 
|  | dword maxY[16]; | 
|  | dword maxZ[16]; | 
|  | dword minX[16]; | 
|  | dword minY[16]; | 
|  | dword minZ[16]; | 
|  | dword fini[16]; | 
|  |  | 
|  | dword4 maxPos; | 
|  |  | 
|  | float4 unscaleByte; | 
|  | float4 unscaleSByte; | 
|  | float4 unscaleShort; | 
|  | float4 unscaleUShort; | 
|  | float4 unscaleInt; | 
|  | float4 unscaleUInt; | 
|  | float4 unscaleFixed; | 
|  |  | 
|  | float half2float[65536]; | 
|  | }; | 
|  |  | 
|  | extern Constants constants; | 
|  | } | 
|  |  | 
|  | #endif   // sw_Constants_hpp |