tor-browser

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

WebGLContextUtils.h (1835B)


      1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #ifndef WEBGL_CONTEXT_UTILS_H_
      7 #define WEBGL_CONTEXT_UTILS_H_
      8 
      9 #include "WebGLStrongTypes.h"
     10 #include "WebGLTypes.h"
     11 
     12 namespace mozilla {
     13 
     14 // For use with the different texture calls, i.e.
     15 //   TexImage2D, CopyTex[Sub]Image2D, ...
     16 // that take a "target" parameter. This parameter is not always the same as
     17 // the texture binding location, like GL_TEXTURE_2D or GL_TEXTURE_CUBE_MAP.
     18 // For example, cube maps would pass GL_TEXTURE_CUBE_MAP_[POS|NEG]_[X|Y|Z]
     19 // instead of just GL_TEXTURE_CUBE_MAP.
     20 //
     21 // This function converts the texture image target to the texture target a.k.a.
     22 // binding location. The returned binding location can be used to check that
     23 // the currently bound texture is appropriate for this texImageTarget.
     24 //
     25 // Returns GL_NONE if passed an invalid texture image target
     26 TexTarget TexImageTargetToTexTarget(TexImageTarget texImageTarget);
     27 
     28 struct GLComponents {
     29  unsigned char mComponents;
     30 
     31  enum Components {
     32    Red = (1 << 0),
     33    Green = (1 << 1),
     34    Blue = (1 << 2),
     35    Alpha = (1 << 3),
     36    Stencil = (1 << 4),
     37    Depth = (1 << 5),
     38  };
     39 
     40  GLComponents() : mComponents(0) {}
     41 
     42  explicit GLComponents(TexInternalFormat format);
     43 
     44  // Returns true iff other has all (or more) of
     45  // the components present in this GLComponents
     46  bool IsSubsetOf(const GLComponents& other) const;
     47 };
     48 
     49 /**
     50 * Return the displayable name for the texture function that is the
     51 * source for validation.
     52 */
     53 const char* InfoFrom(WebGLTexImageFunc func, WebGLTexDimensions dims);
     54 
     55 }  // namespace mozilla
     56 
     57 #endif  // WEBGL_CONTEXT_UTILS_H_