• 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) override;
34     GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
35 
36     void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
37     void setUniform2fv(GLint location, GLsizei count, const GLfloat *v) override;
38     void setUniform3fv(GLint location, GLsizei count, const GLfloat *v) override;
39     void setUniform4fv(GLint location, GLsizei count, const GLfloat *v) override;
40     void setUniform1iv(GLint location, GLsizei count, const GLint *v) override;
41     void setUniform2iv(GLint location, GLsizei count, const GLint *v) override;
42     void setUniform3iv(GLint location, GLsizei count, const GLint *v) override;
43     void setUniform4iv(GLint location, GLsizei count, const GLint *v) override;
44     void setUniform1uiv(GLint location, GLsizei count, const GLuint *v) override;
45     void setUniform2uiv(GLint location, GLsizei count, const GLuint *v) override;
46     void setUniform3uiv(GLint location, GLsizei count, const GLuint *v) override;
47     void setUniform4uiv(GLint location, GLsizei count, const GLuint *v) override;
48     void setUniformMatrix2fv(GLint location,
49                              GLsizei count,
50                              GLboolean transpose,
51                              const GLfloat *value) override;
52     void setUniformMatrix3fv(GLint location,
53                              GLsizei count,
54                              GLboolean transpose,
55                              const GLfloat *value) override;
56     void setUniformMatrix4fv(GLint location,
57                              GLsizei count,
58                              GLboolean transpose,
59                              const GLfloat *value) override;
60     void setUniformMatrix2x3fv(GLint location,
61                                GLsizei count,
62                                GLboolean transpose,
63                                const GLfloat *value) override;
64     void setUniformMatrix3x2fv(GLint location,
65                                GLsizei count,
66                                GLboolean transpose,
67                                const GLfloat *value) override;
68     void setUniformMatrix2x4fv(GLint location,
69                                GLsizei count,
70                                GLboolean transpose,
71                                const GLfloat *value) override;
72     void setUniformMatrix4x2fv(GLint location,
73                                GLsizei count,
74                                GLboolean transpose,
75                                const GLfloat *value) override;
76     void setUniformMatrix3x4fv(GLint location,
77                                GLsizei count,
78                                GLboolean transpose,
79                                const GLfloat *value) override;
80     void setUniformMatrix4x3fv(GLint location,
81                                GLsizei count,
82                                GLboolean transpose,
83                                const GLfloat *value) override;
84 
85     void getUniformfv(const gl::Context *context, GLint location, GLfloat *params) const override;
86     void getUniformiv(const gl::Context *context, GLint location, GLint *params) const override;
87     void getUniformuiv(const gl::Context *context, GLint location, GLuint *params) const override;
88 };
89 
90 }  // namespace rx
91 
92 #endif  // LIBANGLE_RENDERER_NULL_PROGRAMNULL_H_
93