2024/05 4

#5 tinylender 개발일지 : 상태 머신 적용

GUI를 만들었으니 이제 입력에 따라 상태가 변화해야한다.그래서 현재 상태에 따라 동작하게끔 상태 머신을 만들었다. Contextclass Context{ public: Context(IState* layerState, IState* dotState, IState* lineState, IState* surfaceState); void Transition(eUIState state); void HandleState(); eUIState GetState() const {return mState;} private: eUIState mState; IState* mCurrentState=NULL; IState* mL..

#4 gulender 개발일지 : mesh, model 그리고 assimp 세팅

GUI를 만들고, UI에 맞춰 상태 머신을 만들다가 느낀것이..우선 메쉬를 따로 분리해야 할 것 같았다.그래야 지금 내가 조작중인 메쉬에 접근해서 뭘 할수 있으니깐..지금은 vbo, vao, ebo 모두 대충 메인에 박혀있다. 그래서 분리하고자 mesh, model 클래스를 만들었다.class Mesh{ public: Mesh(std::vector vert, std::vector idx, std::vector tex, const GLchar* vertexPath, const GLchar* fragPath ); std::vector vertices; std::vector indice; st..

#3 gulender 개발일지 : rpath 설정

맥북에서 윈도우 게임을 즐기기위해..게임포팅툴킷을 설치하려고...sonoma로 맥을 업데이트 했더니.........빌드가 터졌다^______________^ 더 정확히 말하자면 빌드가 안되는 건 아니고실행 시점에서 문제가 생긴다.Library not loaded: @rpath/libglfw.3.dylibReason: no LC_RPATH's found 에러로그를 살펴보면 libglfw.3 동적 라이브러리 파일 경로를 못찾는다고 나온다.보통 dylib 파일은 usr/local/lib에 있는데..터미널에서 찾아보면아니 잘 있구만.. 컴파일, 링크, 빌드c, c++과 같은 언어에서는컴파일을 통해 오브젝트 파일을 만들고링커를 통해 동적 라이브러리 파일과 링크해서실제 실행파일을 만든다.그러니깐 빌드는 잘 되는데r..

#2 gulender 개발일지 : GUI 개발

저번 글에서 버텍스를 수정하는 기능을 만들었다.앞으로도 여러 기능이 추가될텐데..기능이 추가되기 위해서는 입력을 컨트롤 할 수 있어야 한다.그래서 기능을 더 추가하기 전에, 먼저 GUI를 만들었다. 외부 라이브러리처음에는 외부 라이브러리를 활용하려고 했었다.https://github.com/ocornut/imgui GitHub - ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependenciesDear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies - ocornut/imguigithub.comhttps://g..