sorted files list in objc
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <Cocoa/Cocoa.h>
|
||||
#include <CoreVideo/CoreVideo.h>
|
||||
#include <OpenGL/OpenGL.h>
|
||||
#import "objc_utils.h"
|
||||
|
||||
@implementation View
|
||||
- (void)async_lock
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#import "GameViewController.h"
|
||||
#import <OpenGLES/ES3/glext.h>
|
||||
#include "app.h"
|
||||
#import "objc_utils.h"
|
||||
|
||||
@interface GameImagePicker : UIImagePickerController
|
||||
{
|
||||
|
||||
@@ -232,6 +232,8 @@
|
||||
ADE4911D1F86E65E00FB8E92 /* shapes.cc in Sources */ = {isa = PBXBuildFile; fileRef = ADE491111F86D09100FB8E92 /* shapes.cc */; };
|
||||
ADE4911E1F86E65E00FB8E92 /* sweep_context.cc in Sources */ = {isa = PBXBuildFile; fileRef = ADE491141F86D09100FB8E92 /* sweep_context.cc */; };
|
||||
ADE4911F1F86E65E00FB8E92 /* sweep.cc in Sources */ = {isa = PBXBuildFile; fileRef = ADE491131F86D09100FB8E92 /* sweep.cc */; };
|
||||
ADEBA9062069A4F40085AE16 /* objc_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADEBA9052069A4F40085AE16 /* objc_utils.cpp */; };
|
||||
ADEBA9092069A50E0085AE16 /* objc_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ADEBA9082069A50E0085AE16 /* objc_utils.cpp */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
@@ -413,6 +415,10 @@
|
||||
ADE491131F86D09100FB8E92 /* sweep.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sweep.cc; path = libs/poly2tri/poly2tri/sweep/sweep.cc; sourceTree = "<group>"; };
|
||||
ADE491141F86D09100FB8E92 /* sweep_context.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sweep_context.cc; path = libs/poly2tri/poly2tri/sweep/sweep_context.cc; sourceTree = "<group>"; };
|
||||
ADE491151F86D09100FB8E92 /* cdt.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cdt.cc; path = libs/poly2tri/poly2tri/sweep/cdt.cc; sourceTree = "<group>"; };
|
||||
ADEBA9042069A4F30085AE16 /* objc_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = objc_utils.h; path = engine/objc_utils.h; sourceTree = SOURCE_ROOT; };
|
||||
ADEBA9052069A4F40085AE16 /* objc_utils.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = objc_utils.cpp; path = engine/objc_utils.cpp; sourceTree = SOURCE_ROOT; };
|
||||
ADEBA9072069A50E0085AE16 /* objc_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = objc_utils.h; path = engine/objc_utils.h; sourceTree = SOURCE_ROOT; };
|
||||
ADEBA9082069A50E0085AE16 /* objc_utils.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = objc_utils.cpp; path = engine/objc_utils.cpp; sourceTree = SOURCE_ROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -476,6 +482,8 @@
|
||||
AD0E5CA11ECC6F2B00C35669 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
ADEBA9052069A4F40085AE16 /* objc_utils.cpp */,
|
||||
ADEBA9042069A4F30085AE16 /* objc_utils.h */,
|
||||
AD0E5CA21ECC6F2B00C35669 /* main.cpp */,
|
||||
AD2FEBDA1F94A742002804DD /* main.h */,
|
||||
);
|
||||
@@ -687,6 +695,8 @@
|
||||
ADD7D26D1EBF9AE300D5A897 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
ADEBA9082069A50E0085AE16 /* objc_utils.cpp */,
|
||||
ADEBA9072069A50E0085AE16 /* objc_utils.h */,
|
||||
ADD7D26E1EBF9AE300D5A897 /* main.m */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
@@ -837,6 +847,7 @@
|
||||
AD0E5CB91ECC72AD00C35669 /* node_border.cpp in Sources */,
|
||||
AD0E5CC81ECC72AD00C35669 /* node_popup_menu.cpp in Sources */,
|
||||
AD0E5CB71ECC72AD00C35669 /* layout.cpp in Sources */,
|
||||
ADEBA9062069A4F40085AE16 /* objc_utils.cpp in Sources */,
|
||||
AD0E5CB41ECC72AD00C35669 /* tinyxml2.cpp in Sources */,
|
||||
AD0E5CD81ECC72AD00C35669 /* canvas_modes.cpp in Sources */,
|
||||
AD0E5CA31ECC6F2B00C35669 /* main.cpp in Sources */,
|
||||
@@ -978,6 +989,7 @@
|
||||
ADBC8C571FAFD05A0094B339 /* node_dialog_cloud.cpp in Sources */,
|
||||
ADD7D2951EBF9E1C00D5A897 /* bezier.cpp in Sources */,
|
||||
AD1063A21EC7AE92002A525F /* node_panel_brush.cpp in Sources */,
|
||||
ADEBA9092069A50E0085AE16 /* objc_utils.cpp in Sources */,
|
||||
AD0E11A51ECA61B900CDA6BB /* jpgd.cpp in Sources */,
|
||||
ADE491181F86E65D00FB8E92 /* shapes.cc in Sources */,
|
||||
ADD7D29E1EBF9E1C00D5A897 /* shape.cpp in Sources */,
|
||||
|
||||
@@ -354,6 +354,7 @@ void App::update(float dt)
|
||||
rec_timer = 0.f;
|
||||
|
||||
auto data = new uint8_t[width * height * 4];
|
||||
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
|
||||
glReadBuffer(GL_BACK);
|
||||
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
|
||||
{
|
||||
|
||||
36
engine/objc_utils.cpp
Normal file
36
engine/objc_utils.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "pch.h"
|
||||
#include "objc_utils.h"
|
||||
|
||||
#ifdef __OBJC__
|
||||
|
||||
|
||||
@implementation PathWithModDate
|
||||
@end
|
||||
|
||||
@implementation ObjcUtils
|
||||
+ (NSArray*)getFilesAtPathSortedByModificationDate:(NSString*)folderPath
|
||||
{
|
||||
NSArray *allPaths = [NSFileManager.defaultManager contentsOfDirectoryAtPath:folderPath error:nil];
|
||||
|
||||
NSMutableArray *sortedPaths = [NSMutableArray new];
|
||||
for (NSString *path in allPaths) {
|
||||
NSString *fullPath = [folderPath stringByAppendingPathComponent:path];
|
||||
|
||||
NSDictionary *attr = [NSFileManager.defaultManager attributesOfItemAtPath:fullPath error:nil];
|
||||
NSDate *modDate = [attr objectForKey:NSFileModificationDate];
|
||||
|
||||
PathWithModDate *pathWithDate = [[PathWithModDate alloc] init];
|
||||
pathWithDate.path = fullPath;
|
||||
pathWithDate.modDate = modDate;
|
||||
[sortedPaths addObject:pathWithDate];
|
||||
}
|
||||
|
||||
[sortedPaths sortUsingComparator:^(PathWithModDate *path1, PathWithModDate *path2) {
|
||||
// Descending (most recently modified first)
|
||||
return [path2.modDate compare:path1.modDate];
|
||||
}];
|
||||
|
||||
return sortedPaths;
|
||||
}
|
||||
@end
|
||||
#endif
|
||||
15
engine/objc_utils.h
Normal file
15
engine/objc_utils.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef __OBJC__
|
||||
|
||||
|
||||
@interface PathWithModDate : NSObject
|
||||
@property (strong) NSString *path;
|
||||
@property (strong) NSDate *modDate;
|
||||
@end
|
||||
|
||||
@interface ObjcUtils : NSObject
|
||||
@end
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user