tor-browser

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

ShaderExecutable11.h (2212B)


      1 //
      2 // Copyright 2012 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 
      7 // ShaderExecutable11.h: Defines a D3D11-specific class to contain shader
      8 // executable implementation details.
      9 
     10 #ifndef LIBANGLE_RENDERER_D3D_D3D11_SHADEREXECUTABLE11_H_
     11 #define LIBANGLE_RENDERER_D3D_D3D11_SHADEREXECUTABLE11_H_
     12 
     13 #include "libANGLE/renderer/d3d/ShaderExecutableD3D.h"
     14 #include "libANGLE/renderer/d3d/d3d11/ResourceManager11.h"
     15 
     16 namespace gl
     17 {
     18 class Context;
     19 }  // namespace gl
     20 
     21 namespace rx
     22 {
     23 class Renderer11;
     24 class UniformStorage11;
     25 
     26 class ShaderExecutable11 : public ShaderExecutableD3D
     27 {
     28  public:
     29    ShaderExecutable11(const void *function, size_t length, d3d11::PixelShader &&executable);
     30    ShaderExecutable11(const void *function,
     31                       size_t length,
     32                       d3d11::VertexShader &&executable,
     33                       d3d11::GeometryShader &&streamOut);
     34    ShaderExecutable11(const void *function, size_t length, d3d11::GeometryShader &&executable);
     35    ShaderExecutable11(const void *function, size_t length, d3d11::ComputeShader &&executable);
     36 
     37    ~ShaderExecutable11() override;
     38 
     39    const d3d11::PixelShader &getPixelShader() const;
     40    const d3d11::VertexShader &getVertexShader() const;
     41    const d3d11::GeometryShader &getGeometryShader() const;
     42    const d3d11::GeometryShader &getStreamOutShader() const;
     43    const d3d11::ComputeShader &getComputeShader() const;
     44 
     45  private:
     46    d3d11::PixelShader mPixelExecutable;
     47    d3d11::VertexShader mVertexExecutable;
     48    d3d11::GeometryShader mGeometryExecutable;
     49    d3d11::GeometryShader mStreamOutExecutable;
     50    d3d11::ComputeShader mComputeExecutable;
     51 };
     52 
     53 class UniformStorage11 : public UniformStorageD3D
     54 {
     55  public:
     56    UniformStorage11(size_t initialSize);
     57    ~UniformStorage11() override;
     58 
     59    angle::Result getConstantBuffer(const gl::Context *context,
     60                                    Renderer11 *renderer,
     61                                    const d3d11::Buffer **bufferOut);
     62 
     63  private:
     64    d3d11::Buffer mConstantBuffer;
     65 };
     66 
     67 }  // namespace rx
     68 
     69 #endif  // LIBANGLE_RENDERER_D3D_D3D11_SHADEREXECUTABLE11_H_