Study23 DX11) winMain 초기 정리 비주얼 스튜디오가 기본적으로 제공해주는 Client프로젝트의 winMain은 초심자인 나에게 도전 욕구를 꺽는 아주 불친절한 존재다.별 것도 아닌 것들을 리소스에 넣어넣고, 땡겨오고, 변수화 하고 읽기 아주 불편하게 해놨다.조금씩 정리해를 해보고자 한다.HWND CreateWindowW( LPCWSTR lpClassName, // 등록된 윈도우 클래스 이름 LPCWSTR lpWindowName, // 윈도우 제목 DWORD dwStyle, // 윈도우 스타일 int x, // 윈도우의 x 좌표 int y, // 윈도우의 y 좌표 int nWidth, // .. 2025. 1. 25. DX11) 프로젝트 설정 프로젝트도 제대로 설정 못하는 내가, Direct11을 공부해보겠다고 이러고있다. 컴퓨터 그래픽스에 관심이 생긴 이후로 이런 저런 강의를 봐왔지만,프로젝트 설정 부분은 늘 빠져있었다. 개인적으로 이게 제일 큰 진입장벽인데,몇몇 강의는 프로젝트를 제공하는것으로,이런 과정이 생략되어 이제 무엇인지 부터 짚어가보자 한다. 그래서 이번 프로젝트는 이렇게 설정했으니, 다음 프로젝트 진행시 가져다 쓰려고 기록하고자 한다.폴더 구조아래는 파일 관리를 수월 하기 위한 폴더 구조이다.External : 외부 라이브러리OutputFile : 빌드 파일Project : 프로젝트 파일Client : WinApi로 구동되는 프로젝트Engine : DirectX등 실제 구현 프로젝트(정적라이브러리로 사용)폴더 구조를 변경함으로써.. 2025. 1. 25. C++) ComPtr 오늘의 C++은 사실 100%이해는 하지 못했다.ComPtr을 경험하기 전까지, 스마트 포인터라는 것을 몰랐고,C++은 불편한 언어니까 뭐든 해제해주고, 하나부터 열까지 다 지정해줘야 하는줄 알았다.헷갈릴 때마다 다시 한 번 들여다 보기위해, 정리해본다.1. ComPtr이란?ComPtr은 COM 객체(내가 목표로하는 Direct3D 관련 인터페이스)를 다룰 때, 참조 카운트 관리(Reference Counting)를 자동화해주는 스마트 포인터이다.일반적인 IUnknown 인터페이스 기반의 COM 포인터를 직접 사용하면 AddRef, Release를 직접 호출해줘야 하지만, ComPtr을 사용하면 AddRef, Release 호출이 자동으로 처리되어 메모리 누수 위험을 줄일 수 있다.ComPtr은 템플릿 .. 2025. 1. 24. [미니 프로젝트] 05. 발표 프로젝트 발표오늘은 미니프로젝트를 발표했다.처음 몇팀의 발표를 보고있으니, "초급자용 코스가 아니었나?" 라는 생각을 절로했다. 나는 유니티는 이제 막 켜본 수준에 아직 C#은 손에 익지도 않았지만,그들은 전공자이거나 이 강의가 아니더라도 다른 강의를 포함한 강의 2-3회차 수준은 되어보였다. 하지만 주눅들지 않는다.'왜 쫒기는 마음이 들지 않는 것인가' 생각해봤다.나는 나의 길이 있고, 유니티는 좋은 경험으로 묻을 수 있다고 생각했기 때문일 수도 있겠다. 유니티를 경험 해본 리거.게임 엔진에서 프로시쥬얼 애니메이션을 제공 할 수 있는 리거.유니티도 연동 가능한 CharacterTD.등등.. 앞으로 나아갈수 있는 목표들을 만들어보며, 일단은 프로그래밍에 익숙해져 보도록 노력해야겠다. 아래는 오늘 발표에 .. 2025. 1. 24. [미니프로젝트] 04. 디버그 모드, 난이도 조절 카드 디버그 모드카드 뒤집기 게임은 초기설정이 뒷면이다.앞면을 수정해야 할 때, 모두 뒷면만 보이기 때문에 Debug 모드를 만들었다.카드와 보드에 public bool Debug 생성보드 초기화시 카드가 생성된다. 그때 보드의 Debug 값을 카드도 받아간다.카드는 업데이트에서 카드를 open하는 함수를 호출한다.난이도 조절카드 뒤집기의 난이도는 여러 요소로 조정 가능하다.그 중 우리팀은 카드 종류의 갯수와 카드가 다시 뒷면으로 넘어가는 시간을 조정하기로 했다.카드 종류의 갯수는 Board.cs에서, 카드가 다시 뒷면으로 넘어가는 시간은 Card.cs에서 조정한다.카드 갯수를 조정하기위해, public int Level을 받아온다.이후 Level에 맞게 카드의 index를 조정한다.1단계 5종류2단계 .. 2025. 1. 23. C++) 싱글톤(Singleton) 패턴 싱글톤(Singleton) 패턴은 “프로그램 전체에서 하나의 인스턴스만 존재해야 하는 클래스”를 구현할 때 사용하는 대표적인 디자인 패턴이다.로그 관리자, 설정 관리자, 자원 풀(Resource Pool) 등 “전역적으로 통일된 접근점이 필요한 기능”에 자주 쓰인다. 1. 싱글톤 구현 예시1)정적 지역 변수 방식(Meyers Singleton)C++11 이후 표준에서는 “정적 지역 변수를 초기화할 때” 쓰레드 안전성을 보장한다.따라서 가장 간단하면서도 안전한 방법은 함수 스코프의 static 객체를 사용하는 것.#include class Singleton{public: // 인스턴스에 접근하는 정적 함수 static Singleton& getInstance() { // 첫 호.. 2025. 1. 23. 이전 1 2 3 4 다음