sorted files list in objc

This commit is contained in:
2018-04-08 12:28:35 +02:00
parent 23b7788063
commit aef4cc2230
6 changed files with 66 additions and 0 deletions

View File

@@ -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

View File

@@ -10,6 +10,7 @@
#import "GameViewController.h"
#import <OpenGLES/ES3/glext.h>
#include "app.h"
#import "objc_utils.h"
@interface GameImagePicker : UIImagePickerController
{

View File

@@ -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 */,

View File

@@ -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
View 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
View 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