1 // 2 // Copyright 2023 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 // ProgramExecutableNULL.h: Implementation of ProgramExecutableImpl. 8 9 #ifndef LIBANGLE_RENDERER_NULL_PROGRAMEXECUTABLENULL_H_ 10 #define LIBANGLE_RENDERER_NULL_PROGRAMEXECUTABLENULL_H_ 11 12 #include "libANGLE/ProgramExecutable.h" 13 #include "libANGLE/renderer/ProgramExecutableImpl.h" 14 15 namespace rx 16 { 17 class ProgramExecutableNULL : public ProgramExecutableImpl 18 { 19 public: 20 ProgramExecutableNULL(const gl::ProgramExecutable *executable); 21 ~ProgramExecutableNULL() override; 22 23 void destroy(const gl::Context *context) override; 24 25 void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override; 26 void setUniform2fv(GLint location, GLsizei count, const GLfloat *v) override; 27 void setUniform3fv(GLint location, GLsizei count, const GLfloat *v) override; 28 void setUniform4fv(GLint location, GLsizei count, const GLfloat *v) override; 29 void setUniform1iv(GLint location, GLsizei count, const GLint *v) override; 30 void setUniform2iv(GLint location, GLsizei count, const GLint *v) override; 31 void setUniform3iv(GLint location, GLsizei count, const GLint *v) override; 32 void setUniform4iv(GLint location, GLsizei count, const GLint *v) override; 33 void setUniform1uiv(GLint location, GLsizei count, const GLuint *v) override; 34 void setUniform2uiv(GLint location, GLsizei count, const GLuint *v) override; 35 void setUniform3uiv(GLint location, GLsizei count, const GLuint *v) override; 36 void setUniform4uiv(GLint location, GLsizei count, const GLuint *v) override; 37 void setUniformMatrix2fv(GLint location, 38 GLsizei count, 39 GLboolean transpose, 40 const GLfloat *value) override; 41 void setUniformMatrix3fv(GLint location, 42 GLsizei count, 43 GLboolean transpose, 44 const GLfloat *value) override; 45 void setUniformMatrix4fv(GLint location, 46 GLsizei count, 47 GLboolean transpose, 48 const GLfloat *value) override; 49 void setUniformMatrix2x3fv(GLint location, 50 GLsizei count, 51 GLboolean transpose, 52 const GLfloat *value) override; 53 void setUniformMatrix3x2fv(GLint location, 54 GLsizei count, 55 GLboolean transpose, 56 const GLfloat *value) override; 57 void setUniformMatrix2x4fv(GLint location, 58 GLsizei count, 59 GLboolean transpose, 60 const GLfloat *value) override; 61 void setUniformMatrix4x2fv(GLint location, 62 GLsizei count, 63 GLboolean transpose, 64 const GLfloat *value) override; 65 void setUniformMatrix3x4fv(GLint location, 66 GLsizei count, 67 GLboolean transpose, 68 const GLfloat *value) override; 69 void setUniformMatrix4x3fv(GLint location, 70 GLsizei count, 71 GLboolean transpose, 72 const GLfloat *value) override; 73 74 void getUniformfv(const gl::Context *context, GLint location, GLfloat *params) const override; 75 void getUniformiv(const gl::Context *context, GLint location, GLint *params) const override; 76 void getUniformuiv(const gl::Context *context, GLint location, GLuint *params) const override; 77 }; 78 79 } // namespace rx 80 81 #endif // LIBANGLE_RENDERER_NULL_PROGRAMEXECUTABLENULL_H_ 82