전체 글

게임 프로그래머 지망생 백수 블로그
잡동사니

되는게 없어

재능도 없음 그냥 쉬었음 청년

C/C++

c++ name hiding

부모 클래스에서 정의한 public 함수 Func(int a)가 있었는데자식 클래스에서 public 함수 Func(string b)를 정의하면 부모함수의 Func를 호출할 수 없었다. 찾아보니까 자식 클래스에 이름이 같은 함수를 정의하는 경우부모클래스에 있는동일한 이름다른 인자를 가지는 함수들이 모두 호출이 불가능해지는 듯. Name Hiding이라고 한다. 나는 가상함수 사용이 목적이 아니었기 때문에자식 클래스의 함수이름을 다르게 해주는 것으로 해결했다.

개인 공부 및 프로젝트/Daydream Engine

자체 게임엔진 DevLog - 파일 시스템, 렌더러 수정

FileSystem 파일시스템을 래핑하는 클래스를 구현했다. 원래 이런식으로 사용하고 있었는데 내가 함수 용도를 알아보기 쉽게 이름을 붙이고 싶었고, 필요하다고 std::filesystem::func(param)을 쓰는 함수들도 그냥 Path에서 일괄적으로 호출하면 편할것 같아서 래퍼 클래스를 구현했다. Renderer는 static 함수만 지원하고 실제로 실행되는 함수들은 전부 하위 클래스에 구현되어 있는 것을 그냥 가져다 쓰기만 한다. 여기서 Renderer가 파라미터로 shared_ptr을 받도록 예전에 구현했던 것들이 다시 보니까 이상하다는 생각이 들었는데굳이 shared_ptr로 파라미터를 넘겨줘야 할 이유가 보이지 않았다.Renderer는 잠시 자원을 빌려서 그리는데 사용하는 것이지 소유권..

개인 공부 및 프로젝트/Daydream Engine

자체 게임엔진 DevLog - ImGui Vulkan이 ImageView를 사용하게 하기

이번에 한 작업은 ImGui 라이브러리를 수정했다. Texture와 TextureView를 분리하면서 TextureView가 ImGui::Image에 핸들을 제공하는 역할을 담당하게 되었는데Vulkan만 다른 API들과 다른 방법으로 사용하도록 imgui에서 설명하고 있었다. ImGui::Image는 64비트 정수 타입의 ImTextureID라는 값을 요구하는데이 값은 API마다 다른 타입을 캐스팅 해서 전달한다.DX11 = ID3D11ShaderResourceView*DX12 = D3D12_CPU_DESCRIPTOR_HANDLEOpenGL = GLuint이다. 이 값을 ImTextureID로 캐스팅 해서 전달하면 내가 생성한 텍스쳐를 imgui에서 보이도록 할 수 있다.그러나 ImGui 개발자도 Vul..

C++/Graphics
개발 공부함