diff --git a/MobileGL/MG_Test/Program/CMakeLists.txt b/MobileGL/MG_Test/Program/CMakeLists.txt index fe1f5425..70137c58 100644 --- a/MobileGL/MG_Test/Program/CMakeLists.txt +++ b/MobileGL/MG_Test/Program/CMakeLists.txt @@ -53,8 +53,8 @@ endif() add_executable( - ProgramTest - ProgramTest.cpp + ProgramUtilTest + ProgramUtilTest.cpp ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp @@ -62,16 +62,16 @@ add_executable( ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp ) -target_include_directories(ProgramTest PRIVATE +target_include_directories(ProgramUtilTest PRIVATE ${MGL_ROOT}/include ${MGL_ROOT}/MobileGL ) target_link_libraries( - ProgramTest + ProgramUtilTest GTest::gtest_main ${LINK_LIBRARIES} ) include(GoogleTest) -gtest_discover_tests(ProgramTest) \ No newline at end of file +gtest_discover_tests(ProgramUtilTest) \ No newline at end of file diff --git a/MobileGL/MG_Test/Program/ProgramTest.cpp b/MobileGL/MG_Test/Program/ProgramUtilTest.cpp similarity index 96% rename from MobileGL/MG_Test/Program/ProgramTest.cpp rename to MobileGL/MG_Test/Program/ProgramUtilTest.cpp index 7a3b9fdd..454127f4 100644 --- a/MobileGL/MG_Test/Program/ProgramTest.cpp +++ b/MobileGL/MG_Test/Program/ProgramUtilTest.cpp @@ -6,11 +6,11 @@ #include "Includes.h" using namespace MobileGL; -class ProgramTest : public ::testing::Test { +class ProgramUtilTest : public ::testing::Test { protected: }; -TEST_F(ProgramTest, Sanity) { +TEST_F(ProgramUtilTest, Sanity) { ASSERT_TRUE(true); } @@ -34,7 +34,7 @@ void main(){ texCoord = Position.xy / OutSize; })"; -TEST_F(ProgramTest, CompileSimpleVertexShader) { +TEST_F(ProgramUtilTest, CompileSimpleVertexShader) { using namespace MG_Util::ShaderTranspiler; ShaderAttrib attrib { .shaderType = GL_VERTEX_SHADER, @@ -86,7 +86,7 @@ void main() { fragColor = vec4(OutColor, 1.0); })"; -TEST_F(ProgramTest, CompileSimpleFragmentShader) { +TEST_F(ProgramUtilTest, CompileSimpleFragmentShader) { using namespace MG_Util::ShaderTranspiler; ShaderAttrib attrib { .shaderType = GL_FRAGMENT_SHADER, @@ -115,7 +115,7 @@ void main() { fragColor = color * ColorModulator; })"; -TEST_F(ProgramTest, CompileFragmentShaderWithDiscard) { +TEST_F(ProgramUtilTest, CompileFragmentShaderWithDiscard) { using namespace MG_Util::ShaderTranspiler; ShaderAttrib attrib { .shaderType = GL_FRAGMENT_SHADER, @@ -162,7 +162,7 @@ TEST_F(ProgramTest, CompileFragmentShaderWithDiscard) { } } -TEST_F(ProgramTest, CompileAndLinkProgram) { +TEST_F(ProgramUtilTest, CompileAndLinkProgram) { using namespace MG_Util::ShaderTranspiler; ShaderAttrib vs_attrib { .shaderType = GL_VERTEX_SHADER, @@ -196,7 +196,7 @@ TEST_F(ProgramTest, CompileAndLinkProgram) { } } -TEST_F(ProgramTest, DecompProgram) { +TEST_F(ProgramUtilTest, DecompProgram) { using namespace MG_Util::ShaderTranspiler; ShaderAttrib vs_attrib { .shaderType = GL_VERTEX_SHADER, diff --git a/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp b/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp index a623cc28..d1116600 100644 --- a/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp +++ b/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp @@ -114,7 +114,7 @@ namespace MobileGL { Result> ShaderCompiler::CompileShader(const ShaderAttrib& attrib) { auto shaderType = attrib.shaderType; - auto sourceStr = attrib.sourceStr; + auto& sourceStr = attrib.sourceStr; auto lang = GetEShLanguageByShaderType(shaderType); if (lang == EShLanguage::EShLangCount) { @@ -128,7 +128,7 @@ namespace MobileGL { SharedPtr res; auto& tshader = res; tshader = MakeShared(lang); - const char* src[] = { sourceStr.c_str() }; + const char* src[] = { sourceStr.data() }; tshader->setStrings(src, 1); tshader->setInvertY(true); tshader->setEnvInput(glslang::EShSourceGlsl, lang, glslang::EShClientVulkan, 450); diff --git a/MobileGL/MG_Util/ShaderTranspiler/Types.h b/MobileGL/MG_Util/ShaderTranspiler/Types.h index 74cd83c2..acb37236 100644 --- a/MobileGL/MG_Util/ShaderTranspiler/Types.h +++ b/MobileGL/MG_Util/ShaderTranspiler/Types.h @@ -15,7 +15,7 @@ namespace MobileGL { struct ShaderAttrib { GLenum shaderType; - String sourceStr; + StringView sourceStr; Flags flags; }; diff --git a/MobileGL/MG_Util/Types.h b/MobileGL/MG_Util/Types.h index e19e622d..c10e5a0c 100644 --- a/MobileGL/MG_Util/Types.h +++ b/MobileGL/MG_Util/Types.h @@ -2,6 +2,12 @@ #define GL_UNKNOWN_MGL 0 +#define THROW_EXCEPTION(msg) \ + throw std::runtime_error(msg); + +#define THROW_UNIMPL_EXCEPTION \ + THROW_EXCEPTION("Unimplemented function called!") + namespace MobileGL { using String = std::string; using StringStream = std::stringstream; @@ -18,6 +24,7 @@ namespace MobileGL { using Bool = bool; using Float = float; using Double = double; + using StringView = std::string_view; template using Vector = std::vector; template