基础库
This commit is contained in:
		
							parent
							
								
									e44ea96b43
								
							
						
					
					
						commit
						fbf31f0104
					
				
							
								
								
									
										28
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							|  | @ -75,7 +75,33 @@ | ||||||
|         "stack": "cpp", |         "stack": "cpp", | ||||||
|         "__mutex_base": "cpp", |         "__mutex_base": "cpp", | ||||||
|         "shared_mutex": "cpp", |         "shared_mutex": "cpp", | ||||||
|         "valarray": "cpp" |         "valarray": "cpp", | ||||||
|  |         "__bit_reference": "cpp", | ||||||
|  |         "__debug": "cpp", | ||||||
|  |         "__errc": "cpp", | ||||||
|  |         "__functional_base": "cpp", | ||||||
|  |         "__hash_table": "cpp", | ||||||
|  |         "__locale": "cpp", | ||||||
|  |         "__node_handle": "cpp", | ||||||
|  |         "__nullptr": "cpp", | ||||||
|  |         "__split_buffer": "cpp", | ||||||
|  |         "__string": "cpp", | ||||||
|  |         "__threading_support": "cpp", | ||||||
|  |         "__tree": "cpp", | ||||||
|  |         "__tuple": "cpp", | ||||||
|  |         "algorithm": "cpp", | ||||||
|  |         "codecvt": "cpp", | ||||||
|  |         "fstream": "cpp", | ||||||
|  |         "iomanip": "cpp", | ||||||
|  |         "iterator": "cpp", | ||||||
|  |         "locale": "cpp", | ||||||
|  |         "random": "cpp", | ||||||
|  |         "regex": "cpp", | ||||||
|  |         "cinttypes": "cpp", | ||||||
|  |         "csignal": "cpp", | ||||||
|  |         "memory_resource": "cpp", | ||||||
|  |         "future": "cpp", | ||||||
|  |         "cfenv": "cpp" | ||||||
|     }, |     }, | ||||||
|     "C_Cpp.errorSquiggles": "Disabled" |     "C_Cpp.errorSquiggles": "Disabled" | ||||||
| } | } | ||||||
|  | @ -58,6 +58,12 @@ cc_library( | ||||||
|     srcs = ["GPUImageUtil.cpp"], |     srcs = ["GPUImageUtil.cpp"], | ||||||
|     hdrs = ["GPUImageUtil.h"], |     hdrs = ["GPUImageUtil.h"], | ||||||
|     visibility = ["//path/to/package:__pkg__"], |     visibility = ["//path/to/package:__pkg__"], | ||||||
|  |     linkopts = select({ | ||||||
|  |         "//conditions:default": [], | ||||||
|  |         "//mediapipe:android": [ | ||||||
|  |             "-llog", | ||||||
|  |         ], | ||||||
|  |     }), | ||||||
|     deps = select({ |     deps = select({ | ||||||
|         "//mediapipe:android": [], |         "//mediapipe:android": [], | ||||||
|         "//mediapipe:apple": [], |         "//mediapipe:apple": [], | ||||||
|  |  | ||||||
|  | @ -23,6 +23,7 @@ | ||||||
| #import <OpenGLES/ES3/glext.h> | #import <OpenGLES/ES3/glext.h> | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
|  | 
 | ||||||
| #include "Filter.hpp" | #include "Filter.hpp" | ||||||
| #include "Context.hpp" | #include "Context.hpp" | ||||||
| #include "GPUImageUtil.h" | #include "GPUImageUtil.h" | ||||||
|  | @ -34,6 +35,7 @@ std::mutex Context::_mutex; | ||||||
| std::string Context::activatedContextKey = ""; | std::string Context::activatedContextKey = ""; | ||||||
| std::map<std::string, Context*> Context::_ContextCache; | std::map<std::string, Context*> Context::_ContextCache; | ||||||
| 
 | 
 | ||||||
|  | #if defined(__APPLE__) | ||||||
| Context::Context(EAGLContext *context) | Context::Context(EAGLContext *context) | ||||||
| :_curShaderProgram(0) | :_curShaderProgram(0) | ||||||
| ,isCapturingFrame(false) | ,isCapturingFrame(false) | ||||||
|  | @ -44,16 +46,13 @@ Context::Context(EAGLContext *context) | ||||||
| ,_eglContextIO(0) | ,_eglContextIO(0) | ||||||
| ,vertexArray(-1) { | ,vertexArray(-1) { | ||||||
|     _framebufferCache = new FramebufferCache(this); |     _framebufferCache = new FramebufferCache(this); | ||||||
| 
 |  | ||||||
| #if defined(__APPLE__) |  | ||||||
| 
 |  | ||||||
|     _eglContext = context; |     _eglContext = context; | ||||||
|     shareGroup = [_eglContext sharegroup]; |     shareGroup = [_eglContext sharegroup]; | ||||||
|     _eglContextIO = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3 sharegroup:shareGroup]; |     _eglContextIO = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3 sharegroup:shareGroup]; | ||||||
|     _eglOfflinerenderContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3 sharegroup:shareGroup]; |     _eglOfflinerenderContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3 sharegroup:shareGroup]; | ||||||
|      |  | ||||||
| #endif |  | ||||||
| } | } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| Context::Context() | Context::Context() | ||||||
| :_curShaderProgram(0) | :_curShaderProgram(0) | ||||||
|  |  | ||||||
|  | @ -30,8 +30,9 @@ | ||||||
| #import <OpenGLES/EAGL.h> | #import <OpenGLES/EAGL.h> | ||||||
| #import <OpenGLES/ES3/gl.h> | #import <OpenGLES/ES3/gl.h> | ||||||
| #import <CoreVideo/CoreVideo.h> | #import <CoreVideo/CoreVideo.h> | ||||||
| #else | #elif defined(__ANDROID__)  | ||||||
| #include <EGL/egl.h> | #include <GLES3/gl3.h> | ||||||
|  | #include <GLES3/gl3ext.h> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,11 +17,14 @@ | ||||||
|  */ |  */ | ||||||
| #if defined(__APPLE__) | #if defined(__APPLE__) | ||||||
| #import <Foundation/Foundation.h> | #import <Foundation/Foundation.h> | ||||||
|  | #elif defined(__ANDROID__) | ||||||
|  | #include <android/log.h> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| #include "GPUImageUtil.h" | #include "GPUImageUtil.h" | ||||||
| #define openLog 1 | #define openLog 1 | ||||||
| 
 | #define ANDROID_LOG_INFO 'gpu_log_info' | ||||||
| 
 | 
 | ||||||
| namespace Opipe { | namespace Opipe { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <cmath> | #include <cmath> | ||||||
| #include "GaussianBlurFilter.hpp" | #include "GaussianBlurFilter.hpp" | ||||||
| #include "util.h" | // #include "util.h"
 | ||||||
| 
 | 
 | ||||||
| NS_GI_BEGIN | NS_GI_BEGIN | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,7 +18,6 @@ | ||||||
| 
 | 
 | ||||||
| #include <cmath> | #include <cmath> | ||||||
| #include "GaussianBlurMonoFilter.hpp" | #include "GaussianBlurMonoFilter.hpp" | ||||||
| #include "util.h" |  | ||||||
| 
 | 
 | ||||||
| NS_GI_BEGIN | NS_GI_BEGIN | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ | ||||||
| #if defined(__APPLE__) | #if defined(__APPLE__) | ||||||
| #include "GPUImageMacros.h" | #include "GPUImageMacros.h" | ||||||
| #else | #else | ||||||
| #include "GPUImage-x/GPUImageMacros.h" | #include "GPUImageMacros.h" | ||||||
| #endif | #endif | ||||||
| #if defined(__APPLE__) | #if defined(__APPLE__) | ||||||
| #include <pthread.h> | #include <pthread.h> | ||||||
|  |  | ||||||
|  | @ -44,8 +44,6 @@ cc_library( | ||||||
|     linkstatic = True, |     linkstatic = True, | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//mediapipe/render/module/common:olamodule_common_library", |         "//mediapipe/render/module/common:olamodule_common_library", | ||||||
|         |  | ||||||
|          |  | ||||||
|     ] + select({ |     ] + select({ | ||||||
|         "//mediapipe:apple": [ |         "//mediapipe:apple": [ | ||||||
|             "//mediapipe/render/core:core-ios", |             "//mediapipe/render/core:core-ios", | ||||||
|  | @ -53,6 +51,12 @@ cc_library( | ||||||
|             "//mediapipe/framework/formats:landmark_cc_proto", |             "//mediapipe/framework/formats:landmark_cc_proto", | ||||||
|             "//mediapipe/render/module/beauty/filters:BeautyFilters", |             "//mediapipe/render/module/beauty/filters:BeautyFilters", | ||||||
|         ], |         ], | ||||||
|  |         "//mediapipe:android": [ | ||||||
|  |             "//mediapipe/render/core:core", | ||||||
|  |             "//mediapipe/graphs/face_mesh:mobile_calculators", | ||||||
|  |             "//mediapipe/framework/formats:landmark_cc_proto", | ||||||
|  |             "//mediapipe/render/module/beauty/filters:BeautyFilters", | ||||||
|  |         ], | ||||||
|         "//conditions:default": [ |         "//conditions:default": [ | ||||||
|             "//mediapipe/render/core:core", |             "//mediapipe/render/core:core", | ||||||
|             "//mediapipe/graphs/face_mesh:mobile_calculators", |             "//mediapipe/graphs/face_mesh:mobile_calculators", | ||||||
|  |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |  | ||||||
|     xmlns:tools="http://schemas.android.com/tools" |  | ||||||
|     package="com.ola.olamera"> |  | ||||||
| 
 |  | ||||||
|     <uses-permission android:name="android.permission.CAMERA" /> |  | ||||||
| 
 |  | ||||||
|     <uses-sdk tools:overrideLibrary="androidx.camera.core,androidx.camera.camera2" /> |  | ||||||
| </manifest> |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| //
 |  | ||||||
| // Created by  jormin on 2021/4/3.
 |  | ||||||
| //
 |  | ||||||
| 
 |  | ||||||
| #include <jni.h> |  | ||||||
| 
 |  | ||||||
| extern "C" { |  | ||||||
| JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { |  | ||||||
|     return JNI_VERSION_1_6; |  | ||||||
| } |  | ||||||
| } |  | ||||||
|  | @ -1,63 +0,0 @@ | ||||||
| precision highp float; |  | ||||||
| precision highp int; |  | ||||||
| varying vec2 textureCoordinate; |  | ||||||
| uniform sampler2D inputImageTexture; |  | ||||||
| uniform float inputImageTextureWidth; |  | ||||||
| uniform float inputImageTextureHeight; |  | ||||||
| float cY(float x,float y){ |  | ||||||
|     vec4 c=texture2D(inputImageTexture,vec2(x,y)); |  | ||||||
|     return 0.183 * c.r + 0.614 * c.g + 0.062 * c.b + 0.0625; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| vec4 cC(float x,float y,float dx,float dy){ |  | ||||||
|     vec4 c0=texture2D(inputImageTexture,vec2(x,y)); |  | ||||||
|     vec4 c1=texture2D(inputImageTexture,vec2(x+dx,y)); |  | ||||||
|     vec4 c2=texture2D(inputImageTexture,vec2(x,y+dy)); |  | ||||||
|     vec4 c3=texture2D(inputImageTexture,vec2(x+dx,y+dy)); |  | ||||||
|     return (c0+c1+c2+c3)/4.; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| float cU(float x,float y,float dx,float dy){ |  | ||||||
|     vec4 c=cC(x,y,dx,dy); |  | ||||||
|     return -0.101 * c.r - 0.339 * c.g + 0.439 * c.b + 0.5000; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| float cV(float x,float y,float dx,float dy){ |  | ||||||
|     vec4 c=cC(x,y,dx,dy); |  | ||||||
|     return 0.439 * c.r - 0.399 * c.g - 0.040 * c.b + 0.5000; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| vec2 cPos(float t,float shiftx,float gy){ |  | ||||||
|     vec2 pos=vec2(floor(inputImageTextureWidth*textureCoordinate.x),floor(inputImageTextureHeight*gy)); |  | ||||||
|     return vec2(mod(pos.x*shiftx,inputImageTextureWidth),(pos.y*shiftx+floor(pos.x*shiftx/inputImageTextureWidth))*t); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| vec4 calculateY(){ |  | ||||||
|     vec2 pos=cPos(1.,4.,textureCoordinate.y); |  | ||||||
|     vec4 oColor=vec4(0); |  | ||||||
|     float textureYPos=pos.y/inputImageTextureHeight; |  | ||||||
|     oColor[0]=cY(pos.x/inputImageTextureWidth,textureYPos); |  | ||||||
|     oColor[1]=cY((pos.x+1.)/inputImageTextureWidth,textureYPos); |  | ||||||
|     oColor[2]=cY((pos.x+2.)/inputImageTextureWidth,textureYPos); |  | ||||||
|     oColor[3]=cY((pos.x+3.)/inputImageTextureWidth,textureYPos); |  | ||||||
|     return oColor; |  | ||||||
| } |  | ||||||
| vec4 calculateUV(float dx,float dy){ |  | ||||||
|     vec2 pos=cPos(2.,4.,textureCoordinate.y-0.2500); |  | ||||||
|     vec4 oColor=vec4(0); |  | ||||||
|     float textureYPos=pos.y/inputImageTextureHeight; |  | ||||||
|     oColor[0]= cV(pos.x/inputImageTextureWidth,textureYPos,dx,dy); |  | ||||||
|     oColor[1]= cU(pos.x/inputImageTextureWidth,textureYPos,dx,dy); |  | ||||||
|     oColor[2]= cV((pos.x+2.)/inputImageTextureWidth,textureYPos,dx,dy); |  | ||||||
|     oColor[3]= cU((pos.x+2.)/inputImageTextureWidth,textureYPos,dx,dy); |  | ||||||
|     return oColor; |  | ||||||
| } |  | ||||||
| void main() { |  | ||||||
|     if(textureCoordinate.y<0.2500){ |  | ||||||
|         gl_FragColor=calculateY(); |  | ||||||
|     }else if(textureCoordinate.y<0.3750){ |  | ||||||
|         gl_FragColor=calculateUV(1./inputImageTextureWidth,1./inputImageTextureHeight); |  | ||||||
|     }else{ |  | ||||||
|         gl_FragColor=vec4(0,0,0,0); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
|     attribute vec4 position; |  | ||||||
|     attribute vec4 inputTextureCoordinate; |  | ||||||
|     uniform mat4 mvp; |  | ||||||
| 
 |  | ||||||
|     varying vec2 textureCoordinate; |  | ||||||
| 
 |  | ||||||
|     void main() |  | ||||||
|     { |  | ||||||
|         gl_Position = mvp * position; |  | ||||||
|         textureCoordinate = inputTextureCoordinate.xy; |  | ||||||
|     } |  | ||||||
|  | @ -42,7 +42,6 @@ cc_library( | ||||||
|             "-Wno-shorten-64-to-32", |             "-Wno-shorten-64-to-32", | ||||||
|             "-fobjc-arc",  # enable reference-counting |             "-fobjc-arc",  # enable reference-counting | ||||||
|         ], |         ], | ||||||
|           |  | ||||||
|         "//conditions:default": ["-std=c++17"], |         "//conditions:default": ["-std=c++17"], | ||||||
|     }), |     }), | ||||||
|     alwayslink = True, |     alwayslink = True, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user