본문 바로가기

전체 글

(385)
[iOS] GPUImage constraint 관련 에러 GPUImage2 실행에는 문제가 없는데 콘솔로그상으로 Background Thread 에서 ui 요소에 접근했다는 오류 발생 아래 주소의 jwoodrow comment. https://github.com/BradLarson/GPUImage2/issues/226 /Outputs/iOS/RenderView-UIKit.swift func createDisplayFramebuffer() { . . . let group = DispatchGroup() group.enter() DispatchQueue.main.async { sharedImageProcessingContext.context.renderbufferStorate( Int(GL_RENDERBUFFER), from: sel..
WebRTC iOS 기본 플로우 코드 관련 프로퍼티 // RTCPeerConnection // factory를 생성한 후에 factory에서 peer connection을 생성하는 구조 // factory 생성시에는 인코더, 디코더 필요 var factory:RTCPeerConnectionFactory var peerConnection:RTCPeerConnection // encoder, decoder var encoderFactory:RTCDefaultVideoEncoderFactory var decoderFactory:RTCDefaultVideoDecoderFactory // delegate var delegate:RTCPeerConnectionDelegate // 카메라 캡처 var localVideoCapturer:RTCCameraV..
xcodebuild xcode 에서 프로젝트별 xcodebuild 기본 빌드 설정 프로젝트 > Info > Configurations Use Debug/Release for command-line builds 기본 적인 사용 -workspace {xcworkspace} -project {xcodeproj} -configuration {Release|Debug} -scheme {scheme name} -target {target name} -sdk {sdk} -arch {i386|x86_64|armv7|arm64} -destination '{specific device}' * 스키마에는 타겟 정보가 포함되므로, 스키마 사용시에는 타겟은 제외 workspace, project, scheme 등 정의된 내용으로 빌드 (works..
CocoaPods 라이브러리 배포 CocoaPods 은 podspec 파일들을 관리하는 저장소와 각 실제 파일 저장소간의 연결 역할을 하는 라이브러리 종속성 관리 도구이다. 코코아팟을 사용해 라이브러리를 배포하는 내용을 간단히 정리해 본다. CocoaPods 설치 $ sudo gem install cocoapods 로컬 라이브러리 프로젝트 생성 템플릿으로 프로젝트 설정을 자동화해 주는 것으로 필요한 경우에 수행 별도 프로젝트 구성을 하는 경우 제외( 개인적으로 테스트 프로젝트들과 폴더 구성이 마음에 안들어 사용안함) $ pod lib create {library-name} 지원 플랫폼, 지원 언어 등 설정 아래 내용이 자동으로 생성 Example Tests .podspec git init 소스위치 : project-name/Classes..
[Metal] Compute Function 샘플분석 Compute Function kernel 식별자를 사용하기에 커널 함수라고도 불림 kernel 키워드를 사용해 시작하고, 리턴은 void 형이어야 함. max_total_threads_per_threadgroup 함수속성을 사용해 쓰레드 그룹간의 최대 쓰레드수를 지정가능 단, MTLDevice 의 maxThreadsPerThreadgroup 값보다 크게되면 오류발생할수 있음. [[max_total_threads_per_threadgroup(x)]] kernel void my_kernel() { } 함수인자 디바이스, 상수버퍼 : [[buffer(index)]] 텍스처 : [[texture(index]] 샘플러 : [[sampler(index]] 쓰레드그룹 버퍼 : [[threadgroup(index] ..
[Metal] MetalKit 플로우 분석 공통헤더 RederType.h 쉐이더에서 공통적으로 사용할 타입들을 위해 별도 헤더 정의 스위프트 프로젝트에서는 프로젝트.h 에 이 헤더를 import 해주어야 한다. #include 버텍스 : Vertex import MetalKit struct Vertex { var position: float3 } 쉐이더/텍스처 var vertexFunction:MTLFunction var fragmentFunction:MTLFunction var diffuseTexture:MTLTexture Mesh var vertexBuffer:MTLBuffer var indexBuffer:MTLBuffer 초기화 렌더러 생성 simd::float4x4 modelViewProjectionMatrix; simd::float4x4..
swift , iOS 기본 사항만 빠르게 살펴보기 배열 var arrays : [타입] = [] var arrays = [타입]() var arrays : Array = [] var arrays = [ 값, 값, 값 ] var arrays = [타입]( repeating:반복할요소, count: 반복횟수 ) 값추가 arrays.append( 값 ) arrays += [ 값 ] 배열에서 다양한 타입의 값이 저장되어야 하는 경우 타입을 Any 로 지정 Enum c언어처럼 int 가 할당되는 것이아닌 항목자체가 값이다 enum TypeName { case one case two } let value:TypeName = .one let value = TypeName.one 특정 값으로 할당 enum TypeName : String { case value1 //..
swift - objective-c 혼합 사용 브릿징타입 애플에서 제공하는 api와 같이 함수작성 가이드라인을 준수해 작성된 함수들은 Swift, Objective-C 간의 변환이 자동으로 수행된다. swift의 경우 @objc 어노테이션이 붙은 요소들을 objective-c 헤더에 추가하며, objective-c 는 -Bridgind-Header.h 에 헤더를 import 하면 변환이 일어난다. Swift 프로젝트에서 Objective-C 사용 프로젝트명-Bridging-Header.h 추가 자동으로 지정된 경우에는 설정도 자동으로 이루어지나 수동 추가한 경우 Build Settings의 Objective-C Bridging Header에 해당 파일 지정 $(SRCROOT)/ProjectName/ProjectName-Bridging-Header.h..