• 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.h:
7 //    Defines the class interface for ProgramNULL, implementing ProgramImpl.
8 //
9 
10 #ifndef LIBANGLE_RENDERER_NULL_PROGRAMNULL_H_
11 #define LIBANGLE_RENDERER_NULL_PROGRAMNULL_H_
12 
13 #include "libANGLE/renderer/ProgramImpl.h"
14 
15 namespace rx
16 {
17 
18 class ProgramNULL : public ProgramImpl
19 {
20   public:
21     ProgramNULL(const gl::ProgramState &state);
22     ~ProgramNULL() override;
23 
24     std::unique_ptr<LinkEvent> load(const gl::Context *context,
25                                     gl::BinaryInputStream *stream,
26                                     gl::InfoLog &infoLog) override;
27     void save(const gl::Context *context, gl::BinaryOutputStream *stream) override;
28     void setBinaryRetrievableHint(bool retrievable) override;
29     void setSeparable(bool separable) override;
30 
31     std::unique_ptr<LinkEvent> link(const gl::Context *context,
32                                     const gl::ProgramLinkedResources &resources,
33                                     gl::InfoLog &infoLog,
34                                     const gl::ProgramMergedVaryings &mergedVaryings) override;
35     GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
36 
37     void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
38     void setUniform2fv(GLint location, GLsizei count, const GLfloat *v) override;
39     void setUniform3fv(GLint location, GLsizei count, const GLfloat *v) override;
40     void setUniform4fv(GLint location, GLsizei count, const GLfloat *v) override;
41     void setUniform1iv(GLint location, GLsizei count, const GLint *v) override;
42     void setUniform2iv(GLint location, GLsizei count, const GLint *v) override;
43     void setUniform3iv(GLint location, GLsizei count, const GLint *v) override;
44     void setUniform4iv(GLint location, GLsizei count, const GLint *v) override;
45     void setUniform1uiv(GLint location, GLsizei count, const GLuint *v) override;
46     void setUniform2uiv(GLint location, GLsizei count, const GLuint *v) override;
47     void setUniform3uiv(GLint location, GLsizei count, const GLuint *v) override;
48     void setUniform4uiv(GLint location, GLsizei count, const GLuint *v) override;
49     void setUniformMatrix2fv(GLint location,
50                              GLsizei count,
51                              GLboolean transpose,
52                              const GLfloat *value) override;
53     void setUniformMatrix3fv(GLint location,
54                              GLsizei count,
55                              GLboolean transpose,
56                              const GLfloat *value) override;
57     void setUniformMatrix4fv(GLint location,
58                              GLsizei count,
59                              GLboolean transpose,
60                              const GLfloat *value) override;
61     void setUniformMatrix2x3fv(GLint location,
62                                GLsizei count,
63                                GLboolean transpose,
64                                const GLfloat *value) override;
65     void setUniformMatrix3x2fv(GLint location,
66                                GLsizei count,
67                                GLboolean transpose,
68                                const GLfloat *value) override;
69     void setUniformMatrix2x4fv(GLint location,
70                                GLsizei count,
71                                GLboolean transpose,
72                                const GLfloat *value) override;
73     void setUniformMatrix4x2fv(GLint location,
74                                GLsizei count,
75                                GLboolean transpose,
76                                const GLfloat *value) override;
77     void setUniformMatrix3x4fv(GLint location,
78                                GLsizei count,
79                                GLboolean transpose,
80                                const GLfloat *value) override;
81     void setUniformMatrix4x3fv(GLint location,
82                                GLsizei count,
83                                GLboolean transpose,
84                                const GLfloat *value) override;
85 
86     void getUniformfv(const gl::Context *context, GLint location, GLfloat *params) const override;
87     void getUniformiv(const gl::Context *context, GLint location, GLint *params) const override;
88     void getUniformuiv(const gl::Context *context, GLint location, GLuint *params) const override;
89 };
90 
91 }  // namespace rx
92 
93 #endif  // LIBANGLE_RENDERER_NULL_PROGRAMNULL_H_
94