tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

VariablePacker.h (1021B)


      1 //
      2 // Copyright 2002 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 // Check whether variables fit within packing limits according to the packing rules from the GLSL ES
      7 // 1.00.17 spec, Appendix A, section 7.
      8 
      9 #ifndef COMPILER_TRANSLATOR_VARIABLEPACKER_H_
     10 #define COMPILER_TRANSLATOR_VARIABLEPACKER_H_
     11 
     12 #include <vector>
     13 
     14 #include <GLSLANG/ShaderLang.h>
     15 
     16 namespace sh
     17 {
     18 
     19 // Gets how many components in a row a data type takes.
     20 int GetTypePackingComponentsPerRow(sh::GLenum type);
     21 
     22 // Gets how many rows a data type takes.
     23 int GetTypePackingRows(sh::GLenum type);
     24 
     25 // Returns true if the passed in variables pack in maxVectors.
     26 // T should be ShaderVariable or one of the subclasses of ShaderVariable.
     27 bool CheckVariablesInPackingLimits(unsigned int maxVectors,
     28                                   const std::vector<ShaderVariable> &variables);
     29 
     30 }  // namespace sh
     31 
     32 #endif  // COMPILER_TRANSLATOR_VARIABLEPACKER_H_