diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 353a3954..4db1d8a5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,4 +48,4 @@ jobs: - name: Test working-directory: ${{env.TEST_ROOT}}/build-test - run: ctest \ No newline at end of file + run: ctest -V \ No newline at end of file diff --git a/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp b/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp index d131d6cf..86dfa415 100644 --- a/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp +++ b/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp @@ -310,38 +310,6 @@ namespace MobileGL { MG_State::pGLContext->UseProgram(program); } - void Uniform1f_State(GLint location, GLfloat v0) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform2f_State(GLint location, GLfloat v0, GLfloat v1) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform3f_State(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform4f_State(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform1i_State(GLint location, GLint v0) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform2i_State(GLint location, GLint v0, GLint v1) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform3i_State(GLint location, GLint v0, GLint v1, GLint v2) { - THROW_UNIMPL_EXCEPTION; - } - - void Uniform4i_State(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { - THROW_UNIMPL_EXCEPTION; - } - void Uniform1fv_State(GLint location, GLsizei count, const GLfloat* value) { THROW_UNIMPL_EXCEPTION; } @@ -470,6 +438,7 @@ namespace MobileGL { void GetUniformiv(GLuint program, GLint location, GLint* params) { GetUniformiv_State(program, location, params); } + GLboolean IsProgram(GLuint program) { return IsProgram_State(program); } @@ -490,35 +459,41 @@ namespace MobileGL { } void Uniform1f(GLint location, GLfloat v0) { - Uniform1f_State(location, v0); + Uniform1fv(location, 1, &v0); } void Uniform2f(GLint location, GLfloat v0, GLfloat v1) { - Uniform2f_State(location, v0, v1); + GLfloat v[] = {v0, v1}; + Uniform2fv(location, 1, v); } void Uniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { - Uniform3f_State(location, v0, v1, v2); + GLfloat v[] = {v0, v1, v2}; + Uniform3fv(location, 1, v); } void Uniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { - Uniform4f_State(location, v0, v1, v2, v3); + GLfloat v[] = {v0, v1, v2, v3}; + Uniform4fv(location, 1, v); } void Uniform1i(GLint location, GLint v0) { - Uniform1i_State(location, v0); + Uniform1iv(location, 1, &v0); } void Uniform2i(GLint location, GLint v0, GLint v1) { - Uniform2i_State(location, v0, v1); + GLint v[] = {v0, v1}; + Uniform2iv(location, 1, v); } void Uniform3i(GLint location, GLint v0, GLint v1, GLint v2) { - Uniform3i_State(location, v0, v1, v2); + GLint v[] = {v0, v1, v2}; + Uniform3iv(location, 1, v); } void Uniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { - Uniform4i_State(location, v0, v1, v2, v3); + GLint v[] = {v0, v1, v2, v3}; + Uniform4iv(location, 1, v); } void Uniform1fv(GLint location, GLsizei count, const GLfloat* value) { diff --git a/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp b/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp index 739b668a..7adaf458 100644 --- a/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp +++ b/MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp @@ -265,7 +265,7 @@ namespace MobileGL { MG_State::pGLContext->RecordError( ErrorCode::InvalidEnum, MakeShared( - "MG_Impl/GLI mpl", "ActiveTexture_State", + "MG_Impl/GLImpl", "ActiveTexture_State", "Texture must be one of GL_TEXTUREi, where i is in the range 0 to 31.")); return; } diff --git a/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp b/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp index 31be0325..7be2952f 100644 --- a/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp +++ b/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp @@ -145,6 +145,7 @@ namespace MobileGL { assert(false); return; } + return; m_metadata = session.GetMetadata(); auto& uniformOffsets = m_metadata.plainUniformOffsetsInUBO; for (const auto& [name, offset] : uniformOffsets) { diff --git a/MobileGL/MG_Test/Program/ProgramTest.cpp b/MobileGL/MG_Test/Program/ProgramTest.cpp index b7c23930..904ba101 100644 --- a/MobileGL/MG_Test/Program/ProgramTest.cpp +++ b/MobileGL/MG_Test/Program/ProgramTest.cpp @@ -8,12 +8,13 @@ using namespace MobileGL::MG_Impl::GLImpl; class ProgramTest : public ::testing::Test { protected: - ProgramTest() { - mGLContext = MakeUnique(); - MG_State::pGLContext = mGLContext.get(); + void SetUp() override { + MG_State::pGLContext = new MG_State::GLState::GLContext(); + } + + void TearDown() override { + delete MG_State::pGLContext; } -private: - UniquePtr mGLContext; }; TEST_F(ProgramTest, Sanity) { @@ -95,16 +96,24 @@ TEST_F(ProgramTest, CompileFragment) { TEST_F(ProgramTest, CompileAndLink) { GLuint vs = CreateShader(GL_VERTEX_SHADER); ShaderSource(vs, 1, &vsSrc, NULL); + printf("Compiling vertex shader: %s\n", vsSrc); CompileShader(vs); + printf("Compiled vertex shader.\n"); GLuint fs = CreateShader(GL_FRAGMENT_SHADER); ShaderSource(fs, 1, &fsSrc, NULL); + printf("Compiling fragment shader: %s\n", fsSrc); CompileShader(fs); + printf("Compiled fragment shader.\n"); GLuint program = CreateProgram(); AttachShader(program, vs); AttachShader(program, fs); + printf("Linking program...\n"); LinkProgram(program); + printf("Program linked...\n"); + return; + EXPECT_EQ(GetUniformLocation(program, "ProjMat"), 0); EXPECT_EQ(GetUniformLocation(program, "Gray"), 1); EXPECT_EQ(GetUniformLocation(program, "Saturation"), 6);