[ZVEngine] 개발 일지 -1

Fuji ㅣ 2024. 4. 22. 10:16

개발 목표: ImGui를 사용하기 쉽게 랩핑하고 GUI 생성을 편리하게 하여 빠른 개발을 도울 수 있는 엔진

현재까지 완성된 내용:

우선 위에 첨부된 이미지에서 나오는 소스는 GUI 생성에 필요한 기본적인 템플릿 구조입니다.

여기서 말하는 템플릿은 C++의 템플릿을 의미하는 것이 아닌, 레이어라는 구조를 생성하기 위한 구현 인터페이스를 의미합니다.

헤더를 추가하여 필요에 따라 부모 클래스에서 제공되는 함수를 오버라이딩 하여 사용하면 되도록 하였습니다.

각 함수의 기능은 다음과 같습니다.

OnAttach(): 레이어가 코어에 첨부될 때 호출되는 함수입니다.

OnDetach(): 레이어가 코어에서 분리될 때 호출되는 함수입니다.

OnEvent(): 특정 이벤트(윈도우창 조작, 키 입력, 마우스 입력 등)가 발생되면 이벤트와 함께 호출되는 함수입니다.

OnUpdate(): 매 프레임당 호출되는 함수입니다.

OnGUI(): GUI를 생성할 때 사용되는 함수입니다.

OnMainMenubar(): 윈도우 메뉴바에 UI를 생성할 때 사용하는 메뉴입니다.

각 함수는 필요에 따라 오버라이딩하여 사용하면 되는 구조입니다.

 다음 처럼 코드를 추가한 후 

GUI.h에 사용할 헤더를 추가해주면 기존에 작성한 Sciptor에서 해당 헤더파일을 코어에 바인딩해줍니다.

그리고 빌드를 하면 다음처럼 버튼이 생성됩니다.