tor-browser

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

ProgramPipelineImpl.h (1271B)


      1 //
      2 // Copyright 2017 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 // ProgramPipelineImpl.h: Defines the abstract rx::ProgramPipelineImpl class.
      8 
      9 #ifndef LIBANGLE_RENDERER_PROGRAMPIPELINEIMPL_H_
     10 #define LIBANGLE_RENDERER_PROGRAMPIPELINEIMPL_H_
     11 
     12 #include "common/angleutils.h"
     13 #include "libANGLE/ProgramPipeline.h"
     14 
     15 namespace rx
     16 {
     17 class ContextImpl;
     18 
     19 class ProgramPipelineImpl : public angle::NonCopyable
     20 {
     21  public:
     22    ProgramPipelineImpl(const gl::ProgramPipelineState &state) : mState(state) {}
     23    virtual ~ProgramPipelineImpl() {}
     24    virtual void destroy(const gl::Context *context) {}
     25 
     26    virtual angle::Result link(const gl::Context *context,
     27                               const gl::ProgramMergedVaryings &mergedVaryings,
     28                               const gl::ProgramVaryingPacking &varyingPacking);
     29 
     30    virtual void onProgramUniformUpdate(gl::ShaderType shaderType) {}
     31 
     32    virtual angle::Result onLabelUpdate(const gl::Context *context);
     33 
     34    const gl::ProgramPipelineState &getState() const { return mState; }
     35 
     36  protected:
     37    const gl::ProgramPipelineState &mState;
     38 };
     39 
     40 }  // namespace rx
     41 
     42 #endif  // LIBANGLE_RENDERER_PROGRAMPIPELINEIMPL_H_