Update a few build scripts for android compat
diff --git a/build.sh b/build.sh index 8b29a8c..0571fe3 100755 --- a/build.sh +++ b/build.sh
@@ -17,6 +17,9 @@ elif [ "$OPTION" = "release" ] then premake5 gmake2 && make config=release -j7 +elif [ "$OPTION" = "android" ] +then + premake5 --with-low-level-rendering gmake2 && make config=release -j7 else premake5 gmake2 && make -j7 fi
diff --git a/renderer/library/build.sh b/renderer/library/build.sh index cc912b1..b7c47f3 100755 --- a/renderer/library/build.sh +++ b/renderer/library/build.sh
@@ -16,11 +16,14 @@ echo build.sh release - build release library elif [ "$OPTION" = "clean" ] then - echo Cleaning project ... + echo Cleaning renderer_library project ... premake5 clean elif [ "$OPTION" = "release" ] then - premake5 gmake && make config=release -j7 + premake5 --for-macos gmake && make config=release -j7 +elif [ "$OPTION" = "android" ] +then + premake5 --for-android gmake && make config=release -j7 else - premake5 gmake && make -j7 + premake5 --for-macos gmake && make -j7 fi \ No newline at end of file
diff --git a/renderer/library/build/premake5.lua b/renderer/library/build/premake5.lua index a28d333..f2391b2 100644 --- a/renderer/library/build/premake5.lua +++ b/renderer/library/build/premake5.lua
@@ -9,17 +9,10 @@ objdir "obj/%{cfg.buildcfg}" includedirs {"../include", "../../../include"} -if os.host() == "macosx" then - links {"Cocoa.framework", "rive"} - defines {"RIVE_HAS_METAL", "RIVE_HAS_OPENGL"} - defines {"GL_SILENCE_DEPRECATION"} - includedirs {"../../dependencies/DiligentEngine_build/build/include"} - files {"../src/**.mm"} -else - links {"rive"} -end - -libdirs {"../../../build/bin/%{cfg.buildcfg}", "../../dependencies/skia/out/Static"} +newoption { + trigger = "for-android", + description = "Builds in utility classes and methods used for low level renderering implementations that work with Android systems" +} files {"../src/**.cpp"} @@ -33,6 +26,19 @@ defines {"RELEASE"} optimize "On" +configuration "for-android" + links {"rive"} + defines {"RIVE_HAS_OPENGL", "ANDROID", "GL_SILENCE_DEPRECATION"} + libdirs {"../../../build/bin/%{cfg.buildcfg}"} + +configuration "for-macos" + links {"Cocoa.framework", "rive"} + defines {"RIVE_HAS_METAL", "RIVE_HAS_OPENGL"} + defines {"GL_SILENCE_DEPRECATION"} + includedirs {"../../dependencies/DiligentEngine_build/build/include"} + files {"../src/**.mm"} + libdirs {"../../../build/bin/%{cfg.buildcfg}", "../../dependencies/skia/out/Static"} + -- Clean Function -- newaction { trigger = "clean",
diff --git a/renderer/library/include/opengl/opengl.h b/renderer/library/include/opengl/opengl.h index 1f1cd48..6102ff9 100644 --- a/renderer/library/include/opengl/opengl.h +++ b/renderer/library/include/opengl/opengl.h
@@ -11,8 +11,8 @@ #include <OpenGL/gl3.h> #endif #elif defined(__ANDROID__) || defined(ANDROID) -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> +#include <GLES3/gl3.h> +#include <GLES3/gl3ext.h> #elif defined(__linux__) || defined(__unix__) || defined(__posix__) #include <GL/gl.h> #include <GL/glu.h>
diff --git a/renderer/library/src/opengl/opengl_shaders.cpp b/renderer/library/src/opengl/opengl_shaders.cpp index 9da09c9..9e8560d 100644 --- a/renderer/library/src/opengl/opengl_shaders.cpp +++ b/renderer/library/src/opengl/opengl_shaders.cpp
@@ -1,8 +1,8 @@ -const char* vertexShaderSource = R"""( -#version 330 core -layout (location = 0) in vec2 position; +const char* vertexShaderSource = R"""(#version 300 es + + layout(location = 0) in vec2 position; out vec2 pos; @@ -10,15 +10,14 @@ uniform mat4 transform; uniform mat4 localTransform; -void main() +void main() { - gl_Position = projection*transform*vec4(position, 0.0, 1.0); - pos = (localTransform*vec4(position, 0.0, 1.0)).xy; + gl_Position = projection * transform * vec4(position, 0.0, 1.0); + pos = (localTransform * vec4(position, 0.0, 1.0)).xy; } )"""; -const char* fragmentShaderSource = R"""( -#version 330 core +const char* fragmentShaderSource = R"""(#version 300 es #ifdef GL_ES precision highp float; @@ -35,59 +34,58 @@ void main() { - if (fillType == 0) - { - // solid - fragColor = color;//vec4(color.rgb * color.a, color.a); - } - else if (fillType == 1) - { - // linear + if (fillType == 0) + { + // solid + fragColor = color; // vec4(color.rgb * color.a, color.a); + } + else if (fillType == 1) + { + // linear - vec2 start = position.xy; - vec2 end = position.zw; + vec2 start = position.xy; + vec2 end = position.zw; - - vec2 toEnd = end - start; - float lengthSquared = toEnd.x * toEnd.x + toEnd.y * toEnd.y; - float f = dot(pos - start, toEnd) / lengthSquared; - fragColor = - mix(colors[0], colors[1], smoothstep(stops[0], stops[1], f)); - for (int i = 1; i < 15; ++i) - { - if (i >= count - 1) - { - break; - } - fragColor = mix(fragColor, - colors[i + 1], - smoothstep(stops[i], stops[i + 1], f)); - } - // float alpha = fragColor.w; - // fragColor = vec4(fragColor.xyz * alpha, alpha); - } - else if (fillType == 2) - { - // radial + vec2 toEnd = end - start; + float lengthSquared = toEnd.x * toEnd.x + toEnd.y * toEnd.y; + float f = dot(pos - start, toEnd) / lengthSquared; + fragColor = + mix(colors[0], colors[1], smoothstep(stops[0], stops[1], f)); + for (int i = 1; i < 15; ++i) + { + if (i >= count - 1) + { + break; + } + fragColor = mix(fragColor, + colors[i + 1], + smoothstep(stops[i], stops[i + 1], f)); + } + // float alpha = fragColor.w; + // fragColor = vec4(fragColor.xyz * alpha, alpha); + } + else if (fillType == 2) + { + // radial - vec2 start = position.xy; - vec2 end = position.zw; - - float f = distance(start, pos) / distance(start, end); - fragColor = - mix(colors[0], colors[1], smoothstep(stops[0], stops[1], f)); - for (int i = 1; i < 15; ++i) - { - if (i >= count - 1) - { - break; - } - fragColor = mix(fragColor, - colors[i + 1], - smoothstep(stops[i], stops[i + 1], f)); - } - // float alpha = fragColor.w; - // fragColor = vec4(fragColor.xyz * alpha, alpha); - } + vec2 start = position.xy; + vec2 end = position.zw; + + float f = distance(start, pos) / distance(start, end); + fragColor = + mix(colors[0], colors[1], smoothstep(stops[0], stops[1], f)); + for (int i = 1; i < 15; ++i) + { + if (i >= count - 1) + { + break; + } + fragColor = mix(fragColor, + colors[i + 1], + smoothstep(stops[i], stops[i + 1], f)); + } + // float alpha = fragColor.w; + // fragColor = vec4(fragColor.xyz * alpha, alpha); + } } )"""; \ No newline at end of file