개발 목표: ImGui를 사용하기 쉽게 랩핑하고 GUI 생성을 편리하게 하여 빠른 개발을 도울 수 있는 엔진
현재까지 완성된 내용:
우선 위에 첨부된 이미지에서 나오는 소스는 GUI 생성에 필요한 기본적인 템플릿 구조입니다.
여기서 말하는 템플릿은 C++의 템플릿을 의미하는 것이 아닌, 레이어라는 구조를 생성하기 위한 구현 인터페이스를 의미합니다.
헤더를 추가하여 필요에 따라 부모 클래스에서 제공되는 함수를 오버라이딩 하여 사용하면 되도록 하였습니다.
각 함수의 기능은 다음과 같습니다.
OnAttach(): 레이어가 코어에 첨부될 때 호출되는 함수입니다.
OnDetach(): 레이어가 코어에서 분리될 때 호출되는 함수입니다.
OnEvent(): 특정 이벤트(윈도우창 조작, 키 입력, 마우스 입력 등)가 발생되면 이벤트와 함께 호출되는 함수입니다.
OnUpdate(): 매 프레임당 호출되는 함수입니다.
OnGUI(): GUI를 생성할 때 사용되는 함수입니다.
OnMainMenubar(): 윈도우 메뉴바에 UI를 생성할 때 사용하는 메뉴입니다.
각 함수는 필요에 따라 오버라이딩하여 사용하면 되는 구조입니다.
다음 처럼 코드를 추가한 후
GUI.h에 사용할 헤더를 추가해주면 기존에 작성한 Sciptor에서 해당 헤더파일을 코어에 바인딩해줍니다.
그리고 빌드를 하면 다음처럼 버튼이 생성됩니다.
'Diary > 개발 일지' 카테고리의 다른 글
[ZVEngine] 개발 일지 -5 : ComboBox (0) | 2024.05.22 |
---|---|
[ZVEngine] 개발 일지 -4 : HotKey 구현 (0) | 2024.05.17 |
[ZVEngine] 개발 일지 -3 : Dialog 생성 기능 개선 및 메뉴바 (0) | 2024.05.16 |
[ZVEngine] 개발 일지 -2 : Profiler (0) | 2024.05.08 |