• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2016 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 // ProgramNULL.cpp:
7 //    Implements the class methods for ProgramNULL.
8 //
9 
10 #include "libANGLE/renderer/null/ProgramNULL.h"
11 
12 #include "common/debug.h"
13 
14 namespace rx
15 {
16 namespace
17 {
18 class LinkTaskNULL : public LinkTask
19 {
20   public:
21     ~LinkTaskNULL() override = default;
link(const gl::ProgramLinkedResources & resources,const gl::ProgramMergedVaryings & mergedVaryings,std::vector<std::shared_ptr<LinkSubTask>> * linkSubTasksOut,std::vector<std::shared_ptr<LinkSubTask>> * postLinkSubTasksOut)22     void link(const gl::ProgramLinkedResources &resources,
23               const gl::ProgramMergedVaryings &mergedVaryings,
24               std::vector<std::shared_ptr<LinkSubTask>> *linkSubTasksOut,
25               std::vector<std::shared_ptr<LinkSubTask>> *postLinkSubTasksOut) override
26     {
27         ASSERT(linkSubTasksOut && linkSubTasksOut->empty());
28         ASSERT(postLinkSubTasksOut && postLinkSubTasksOut->empty());
29 
30         return;
31     }
getResult(const gl::Context * context,gl::InfoLog & infoLog)32     angle::Result getResult(const gl::Context *context, gl::InfoLog &infoLog) override
33     {
34         return angle::Result::Continue;
35     }
36 };
37 }  // anonymous namespace
38 
ProgramNULL(const gl::ProgramState & state)39 ProgramNULL::ProgramNULL(const gl::ProgramState &state) : ProgramImpl(state) {}
40 
~ProgramNULL()41 ProgramNULL::~ProgramNULL() {}
42 
load(const gl::Context * context,gl::BinaryInputStream * stream,std::shared_ptr<LinkTask> * loadTaskOut,egl::CacheGetResult * resultOut)43 angle::Result ProgramNULL::load(const gl::Context *context,
44                                 gl::BinaryInputStream *stream,
45                                 std::shared_ptr<LinkTask> *loadTaskOut,
46                                 egl::CacheGetResult *resultOut)
47 {
48     *loadTaskOut = {};
49     *resultOut   = egl::CacheGetResult::Success;
50     return angle::Result::Continue;
51 }
52 
save(const gl::Context * context,gl::BinaryOutputStream * stream)53 void ProgramNULL::save(const gl::Context *context, gl::BinaryOutputStream *stream) {}
54 
setBinaryRetrievableHint(bool retrievable)55 void ProgramNULL::setBinaryRetrievableHint(bool retrievable) {}
56 
setSeparable(bool separable)57 void ProgramNULL::setSeparable(bool separable) {}
58 
link(const gl::Context * contextImpl,std::shared_ptr<LinkTask> * linkTaskOut)59 angle::Result ProgramNULL::link(const gl::Context *contextImpl,
60                                 std::shared_ptr<LinkTask> *linkTaskOut)
61 {
62     *linkTaskOut = std::shared_ptr<LinkTask>(new LinkTaskNULL);
63     return angle::Result::Continue;
64 }
65 
validate(const gl::Caps & caps)66 GLboolean ProgramNULL::validate(const gl::Caps &caps)
67 {
68     return GL_TRUE;
69 }
70 
71 }  // namespace rx
72