일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 디자인 패턴
- 브릿지
- 프로토타입
- 팩터리 메서드
- 컴포지트 패턴
- 프로토타입 패턴
- 컴포지트
- 데커레이터
- 흐름식 빌더
- 내부 팩터리
- 싱글턴 패턴
- 싱글턴
- 디자인패턴
- 팩터리 패턴
- 모던C++디자인패턴
- 동적 데코레이터
- 싱글톤 패턴
- 추상 팩터리
- 동적 데커레이터
- 프로토타입 중복처리
- 브릿지 패턴
- 팩터리
- 싱글톤
- 단순한 빌더
- 데커레이터 패턴
- 컴포지트 빌더
- 함수형 팩터리
- 빌더 패턴
- 그루비 스타일 빌더
- 빌더
- Today
- Total
목록분류 전체보기 (65)
GGym's Practice Notes
1. DirectX SDK 설치 https://www.microsoft.com/en-us/download/details.aspx?id=6812 DirectX SDK - (June 2010) Download the complete DirectX SDK, which contains the DirectX Runtime and all DirectX software required to create DirectX compliant applications. www.microsoft.com S1023에러시 참조 https://support.microsoft.com/en-ca/help/2728613/s1023-error-when-you-install-the-directx-sdk-june-2010 https://supp..
Pimpl 관례는 브릿지 패턴의 특별한 예이다. Renderer 클래스는 벡터, 래스터로 그릴 수 있다고 한다. Renderer 베이스 클래스는 다음과 같이 정의한다. struct Renderer{ virtual void render_circle(float x, float y, float radius) = 0; }; 실제로 그리지 않고 콘솔에 메세지를 출력한다. struct VectorRenderer : Renderer{ void render_circle(float x, float y, float radius) override{ cout
# Pimpl 관례 Pimpl (Pointer to Implementation) : 구현부를 포인터로 참조하는 관례 아래와 같이 Person의 클래스를 정의한다. struct Person{ string name; void greet(); Person(); ~Person(); class PersonImpl; PersonImpl *impl; }; PersonImpl은 무엇인가? 클래스의 구현부를 다른 클래스(PersonImpl)에 숨기고자 하는 의도에서 발생한다. 구현 클래스 PersonImpl을 헤더파일이 아닌 .cpp 파일에 정의하는 것이 핵심적이다. PersonImpl의 정의는 아래와 같다. struct Person::PersonImpl{ void greet(Person* p); }; Person 클래..
이전 코드는 문제가 되는 상황이 있다. 화면이 업데이트 될때마다 DrawPoints()가 불리는 경우를 생각한다. 전혀 바뀐 것이 없더라도 도형의 선분들이 어댑터에 의해 반복적으로 점으로 변환된다. 비효율적인 중복 작업을 피하기 위해 캐싱을 이용한다. 모든 어플리케이션이 기동할 때 미리 어댑터를 이용해 정의해 두고 재활용하는 것이다. vector points; for(auto& o : vectorObjects){ for(auto& l : *o){ LineToPointAdapter lpo{l}; for(auto& p : lpo){ points.push_back(p); } } }
OpenGL을 쓰기 위해선 PIXELFORMATDESCRIPTOR에 대하여 알아야한다. PIXELFORMATDESCRIPTOR : 이 구조체는 서피스를 그리는데 필요한 픽셀포멧을 기술한다. 서피스는 그림상자라고 이해하면 편하다. PIXELFORMATDESCRIPTOR pfd; 구조체의 내용을 채운다. memset(&pfd, 0, sizeof(pfd)); pfd.nSize = sizeof(pfd); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 32; 대부분의 기본 값을 0으로 하기위해서 memset()을 사용하여 0으로 설정한다. 나머..
GDI (Graphic Device Interface) GDI Object : 그래픽 출력에 사용되는 도구들 (펜, 브러시, 비트맵, 폰트) - 펜 : 선을 그을 때 사용 - 브러시 : 면을 채울 때 사용 - 비트맵 : 비트맵 파일 > GDI 오브젝트를 모아 놓은것 : DC -> 선, 면에 대한 정보가 다 있음. 현재 선택되어 있는 GDI 오브젝트 사용 > 그래픽을 그리기전에 DC에 적절한 오브젝트를 선택하고 원하는 모양과 속성으로 그래픽 출력 > GDI 오브젝트는 보통 Render()함수 내부에 구현 GDI 오브젝트는 핸들로 관리 : HPEN, HBRUSH, HBITMAP GDI오브젝트를 바꾸어가면서 쓸때 순서를 유의 1 핸들 선언 2 GDI 오브젝트 만듬 3 DC선택 이전 핸들 저장 4 사용 5 선택..