mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-09 04:38:30 +09:00
Merge branch 'dev' of github.com:MobileGL-Dev/MobileGL into dev
This commit is contained in:
@@ -48,4 +48,4 @@ jobs:
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{env.TEST_ROOT}}/build-test
|
||||
run: ctest
|
||||
run: ctest -V
|
||||
@@ -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) {
|
||||
|
||||
@@ -265,7 +265,7 @@ namespace MobileGL {
|
||||
MG_State::pGLContext->RecordError(
|
||||
ErrorCode::InvalidEnum,
|
||||
MakeShared<GenericErrorInfo>(
|
||||
"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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -8,12 +8,13 @@ using namespace MobileGL::MG_Impl::GLImpl;
|
||||
|
||||
class ProgramTest : public ::testing::Test {
|
||||
protected:
|
||||
ProgramTest() {
|
||||
mGLContext = MakeUnique<MG_State::GLState::GLContext>();
|
||||
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<MG_State::GLState::GLContext> 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);
|
||||
|
||||
Reference in New Issue
Block a user