openFramework, Universal App

OpenFramework를 Windows Universal App에서 사용해보기

최근에 OpenFramework(이하 OF)가 Windows Universal App에서도 사용할 수 있게 되었다. 직접 한번 간단히 해본 내용을 공유한다.

아직 나온지가 얼마 안 되서 그런지 친절한 튜토리얼은 없었다. MS오픈테크의 공지를 읽어 보니까 projectGenerator라고 하는 OF의 프로젝트 생성 툴이 있는데 이를 Universal App 프로젝트를 만드는 버전으로 포팅했다는 내용이 있다.

따라서, 해당 공지에 있는 GitHub의 OF 프로젝트를 Clone해봤다.

image

GitHub for Windows를 설치한 상태에서 Clone in Desktop을 클릭하여 프로젝트를 로컬로 Clone한다.

image

openFrameworks 프로젝트를 선택하고 Branch를 universal로 변경한다.

 

image 

Clone 된 폴더를 열고, projectGenerator라는 하위 폴더에 들어가면 projectGeneratorSimple_winrt.exe라는 실행파일을 찾을 수 있다.

이 파일을 실행하면 다음과 같은 GUI 툴이 나온다.

 

image

Name을 적당히 변경하고 GENERATE PROJECT 버튼을 눌러서 프로젝트를 생성한다.

image 

솔루션 파일을 열면 다음과 같은 구조로 되어 있다.

image

이 중에 ofApp.cpp가 openFramework를 사용하는 코드가 들어가는 파일이다. 현재는 아무런 코드가 작성되어 있지 않기 때문에 실행하면 회색 화면만 보인다.

image

이제부터는 openFramework.org의 튜토리얼을 따라서 ofApp.cpp나 opApp.h를 수정하면 된다.

image

ofApp.cpp 파일은 위와 같이 미리 정해진 메서드가 있고, 해당 메서드의 내용을 작성하면 되는 구조이다. setup()은 처음에 한번만 실행되고, draw()는 프레임 단위로 화면을 갱신하고, update()는 반복 실행하는 코드를 넣으면 된다.

여러 가지 튜토리얼 중 파티클 시스템을 따라해 봤다. 마우스의 클릭에 따라 원이 따라 움직이는 예제이다.

image

간단히 코드를 살펴보면 위와 같이 of로 시작하는 기본 제공 함수들을 이용하여 마우스 위치(mouseX, mouseY)를 가져와서, 색상을 정하고(ofBackgroundGradient(…), ofSetColor(…), ofFill() 등), 원을 그려 넣는 등(ofCircle(…)) 쉽게 구현을 해볼 수 있게 되어 있다. Shared 프로젝트에 ofApp.cpp 파일이 있어서 윈도우/윈도우폰 프로젝트 설정만 바꾸면 동일하게 실행되는 것을 확인할 수 있다.

_968

_969

간단히 openFramework가 유니버설 앱에서 동작하는 것을 확인하였는데, OpenGL이나 OpenCV 등도 동작하는지는 좀 더 살펴보아야 할 것 같다.