Skip to content

Commit

Permalink
GPU
Browse files Browse the repository at this point in the history
  • Loading branch information
FMYang committed Sep 15, 2021
1 parent 89c0964 commit 4a25f6d
Show file tree
Hide file tree
Showing 27 changed files with 1,918 additions and 122 deletions.
72 changes: 64 additions & 8 deletions GPUImage/GPUImage.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

/* Begin PBXBuildFile section */
880C266A26F0EE3F009140CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 880C266926F0EE3F009140CC /* AppDelegate.m */; };
880C266D26F0EE3F009140CC /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 880C266C26F0EE3F009140CC /* SceneDelegate.m */; };
880C267026F0EE3F009140CC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 880C266F26F0EE3F009140CC /* ViewController.m */; };
880C267326F0EE3F009140CC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 880C267126F0EE3F009140CC /* Main.storyboard */; };
880C267526F0EE41009140CC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 880C267426F0EE41009140CC /* Assets.xcassets */; };
Expand All @@ -17,14 +16,21 @@
880C268526F0EE60009140CC /* GLProgram.m in Sources */ = {isa = PBXBuildFile; fileRef = 880C268426F0EE60009140CC /* GLProgram.m */; };
880C268926F0EE75009140CC /* GPUImageContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 880C268826F0EE75009140CC /* GPUImageContext.m */; };
880C268D26F0EE82009140CC /* GPUImageFramebuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 880C268C26F0EE82009140CC /* GPUImageFramebuffer.m */; };
E4438D1026F18729008CAD26 /* GPUImageOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D0F26F18729008CAD26 /* GPUImageOutput.m */; };
E4438D1326F19B10008CAD26 /* GPUImageVideoCamera.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D1226F19B10008CAD26 /* GPUImageVideoCamera.m */; };
E4438D1626F1A559008CAD26 /* GPUImageFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D1526F1A559008CAD26 /* GPUImageFilter.m */; };
E4438D1926F1A5F7008CAD26 /* GPUImageColorConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D1826F1A5F7008CAD26 /* GPUImageColorConversion.m */; };
E4438D1C26F1A697008CAD26 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4438D1B26F1A697008CAD26 /* OpenGLES.framework */; };
E4438D1E26F1A6B5008CAD26 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4438D1D26F1A6B5008CAD26 /* CoreMedia.framework */; };
E4438D2126F1D4A3008CAD26 /* GPUImageFramebufferCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D2026F1D4A3008CAD26 /* GPUImageFramebufferCache.m */; };
E4438D2426F1DC70008CAD26 /* GPUImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D2326F1DC70008CAD26 /* GPUImageView.m */; };
E4438D2726F1EC6A008CAD26 /* FMCameraVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E4438D2626F1EC6A008CAD26 /* FMCameraVC.m */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
880C266526F0EE3E009140CC /* GPUImage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GPUImage.app; sourceTree = BUILT_PRODUCTS_DIR; };
880C266826F0EE3E009140CC /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
880C266926F0EE3F009140CC /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
880C266B26F0EE3F009140CC /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = "<group>"; };
880C266C26F0EE3F009140CC /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = "<group>"; };
880C266E26F0EE3F009140CC /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
880C266F26F0EE3F009140CC /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
880C267226F0EE3F009140CC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
Expand All @@ -38,13 +44,31 @@
880C268826F0EE75009140CC /* GPUImageContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageContext.m; sourceTree = "<group>"; };
880C268B26F0EE82009140CC /* GPUImageFramebuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageFramebuffer.h; sourceTree = "<group>"; };
880C268C26F0EE82009140CC /* GPUImageFramebuffer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageFramebuffer.m; sourceTree = "<group>"; };
E4438D0E26F18729008CAD26 /* GPUImageOutput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageOutput.h; sourceTree = "<group>"; };
E4438D0F26F18729008CAD26 /* GPUImageOutput.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageOutput.m; sourceTree = "<group>"; };
E4438D1126F19B10008CAD26 /* GPUImageVideoCamera.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageVideoCamera.h; sourceTree = "<group>"; };
E4438D1226F19B10008CAD26 /* GPUImageVideoCamera.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageVideoCamera.m; sourceTree = "<group>"; };
E4438D1426F1A559008CAD26 /* GPUImageFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageFilter.h; sourceTree = "<group>"; };
E4438D1526F1A559008CAD26 /* GPUImageFilter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageFilter.m; sourceTree = "<group>"; };
E4438D1726F1A5F7008CAD26 /* GPUImageColorConversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageColorConversion.h; sourceTree = "<group>"; };
E4438D1826F1A5F7008CAD26 /* GPUImageColorConversion.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageColorConversion.m; sourceTree = "<group>"; };
E4438D1B26F1A697008CAD26 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
E4438D1D26F1A6B5008CAD26 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
E4438D1F26F1D4A3008CAD26 /* GPUImageFramebufferCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageFramebufferCache.h; sourceTree = "<group>"; };
E4438D2026F1D4A3008CAD26 /* GPUImageFramebufferCache.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageFramebufferCache.m; sourceTree = "<group>"; };
E4438D2226F1DC70008CAD26 /* GPUImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPUImageView.h; sourceTree = "<group>"; };
E4438D2326F1DC70008CAD26 /* GPUImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GPUImageView.m; sourceTree = "<group>"; };
E4438D2526F1EC6A008CAD26 /* FMCameraVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FMCameraVC.h; sourceTree = "<group>"; };
E4438D2626F1EC6A008CAD26 /* FMCameraVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FMCameraVC.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
880C266226F0EE3E009140CC /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E4438D1E26F1A6B5008CAD26 /* CoreMedia.framework in Frameworks */,
E4438D1C26F1A697008CAD26 /* OpenGLES.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -56,6 +80,7 @@
children = (
880C266726F0EE3E009140CC /* GPUImage */,
880C266626F0EE3E009140CC /* Products */,
E4438D1A26F1A697008CAD26 /* Frameworks */,
);
sourceTree = "<group>";
};
Expand All @@ -73,15 +98,15 @@
880C268226F0EE48009140CC /* Source */,
880C266826F0EE3E009140CC /* AppDelegate.h */,
880C266926F0EE3F009140CC /* AppDelegate.m */,
880C266B26F0EE3F009140CC /* SceneDelegate.h */,
880C266C26F0EE3F009140CC /* SceneDelegate.m */,
880C266E26F0EE3F009140CC /* ViewController.h */,
880C266F26F0EE3F009140CC /* ViewController.m */,
880C267126F0EE3F009140CC /* Main.storyboard */,
880C267426F0EE41009140CC /* Assets.xcassets */,
880C267626F0EE41009140CC /* LaunchScreen.storyboard */,
880C267926F0EE41009140CC /* Info.plist */,
880C267A26F0EE41009140CC /* main.m */,
E4438D2526F1EC6A008CAD26 /* FMCameraVC.h */,
E4438D2626F1EC6A008CAD26 /* FMCameraVC.m */,
);
path = GPUImage;
sourceTree = "<group>";
Expand All @@ -95,10 +120,31 @@
880C268826F0EE75009140CC /* GPUImageContext.m */,
880C268B26F0EE82009140CC /* GPUImageFramebuffer.h */,
880C268C26F0EE82009140CC /* GPUImageFramebuffer.m */,
E4438D1F26F1D4A3008CAD26 /* GPUImageFramebufferCache.h */,
E4438D2026F1D4A3008CAD26 /* GPUImageFramebufferCache.m */,
E4438D0E26F18729008CAD26 /* GPUImageOutput.h */,
E4438D0F26F18729008CAD26 /* GPUImageOutput.m */,
E4438D1126F19B10008CAD26 /* GPUImageVideoCamera.h */,
E4438D1226F19B10008CAD26 /* GPUImageVideoCamera.m */,
E4438D1426F1A559008CAD26 /* GPUImageFilter.h */,
E4438D1526F1A559008CAD26 /* GPUImageFilter.m */,
E4438D1726F1A5F7008CAD26 /* GPUImageColorConversion.h */,
E4438D1826F1A5F7008CAD26 /* GPUImageColorConversion.m */,
E4438D2226F1DC70008CAD26 /* GPUImageView.h */,
E4438D2326F1DC70008CAD26 /* GPUImageView.m */,
);
path = Source;
sourceTree = "<group>";
};
E4438D1A26F1A697008CAD26 /* Frameworks */ = {
isa = PBXGroup;
children = (
E4438D1D26F1A6B5008CAD26 /* CoreMedia.framework */,
E4438D1B26F1A697008CAD26 /* OpenGLES.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
Expand Down Expand Up @@ -171,10 +217,16 @@
880C267026F0EE3F009140CC /* ViewController.m in Sources */,
880C266A26F0EE3F009140CC /* AppDelegate.m in Sources */,
880C268526F0EE60009140CC /* GLProgram.m in Sources */,
E4438D1026F18729008CAD26 /* GPUImageOutput.m in Sources */,
880C268D26F0EE82009140CC /* GPUImageFramebuffer.m in Sources */,
E4438D2126F1D4A3008CAD26 /* GPUImageFramebufferCache.m in Sources */,
880C267B26F0EE41009140CC /* main.m in Sources */,
E4438D1926F1A5F7008CAD26 /* GPUImageColorConversion.m in Sources */,
E4438D2726F1EC6A008CAD26 /* FMCameraVC.m in Sources */,
E4438D1626F1A559008CAD26 /* GPUImageFilter.m in Sources */,
E4438D2426F1DC70008CAD26 /* GPUImageView.m in Sources */,
880C268926F0EE75009140CC /* GPUImageContext.m in Sources */,
880C266D26F0EE3F009140CC /* SceneDelegate.m in Sources */,
E4438D1326F19B10008CAD26 /* GPUImageVideoCamera.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -251,7 +303,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.4;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
Expand Down Expand Up @@ -304,7 +356,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.4;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
Expand All @@ -318,7 +370,9 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = DQFEA2B5H2;
INFOPLIST_FILE = GPUImage/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand All @@ -335,7 +389,9 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = DQFEA2B5H2;
INFOPLIST_FILE = GPUImage/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand Down
1 change: 1 addition & 0 deletions GPUImage/GPUImage/AppDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (nonatomic, strong) UIWindow *window;

@end

26 changes: 7 additions & 19 deletions GPUImage/GPUImage/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
//

#import "AppDelegate.h"
#import "ViewController.h"

@interface AppDelegate ()

Expand All @@ -15,26 +16,13 @@ @implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
self.window.backgroundColor = UIColor.whiteColor;
ViewController *vc = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
return YES;
}


#pragma mark - UISceneSession lifecycle


- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}


- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}


@end
16 changes: 16 additions & 0 deletions GPUImage/GPUImage/FMCameraVC.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//
// FMCameraVC.h
// GPUImage
//
// Created by yfm on 2021/9/15.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface FMCameraVC : UIViewController

@end

NS_ASSUME_NONNULL_END
34 changes: 34 additions & 0 deletions GPUImage/GPUImage/FMCameraVC.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//
// FMCameraVC.m
// GPUImage
//
// Created by yfm on 2021/9/15.
//

#import "FMCameraVC.h"
#import "GPUImageVideoCamera.h"
#import "GPUImageView.h"

@interface FMCameraVC() {
GPUImageView *_glView;
}

@end

@implementation FMCameraVC

- (void)viewDidLoad {
[super viewDidLoad];

_glView = [[GPUImageView alloc] init];
_glView.frame = self.view.bounds;
[self.view addSubview:_glView];

GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

[videoCamera addTarget:_glView];
[videoCamera startCameraCapture];
}

@end
21 changes: 2 additions & 19 deletions GPUImage/GPUImage/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,14 @@
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Main</string>
</dict>
</array>
</dict>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>NSCameraUsageDescription</key>
<string></string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
Expand Down
15 changes: 0 additions & 15 deletions GPUImage/GPUImage/SceneDelegate.h

This file was deleted.

57 changes: 0 additions & 57 deletions GPUImage/GPUImage/SceneDelegate.m

This file was deleted.

Loading

0 comments on commit 4a25f6d

Please sign in to comment.