전체 글
[iOS][Metal] Metal 튜토리얼 (유료강의)
https://www.kodeco.com/books/metal-by-tutorials Metal by Tutorials Build your own low-level game engine in Metal! Metal is a unified application programming interface (API) for the graphics processing unit, or GPU. It’s unified because it applies to both 3D graphics and data-parallel computation paradigms. M www.kodeco.com
[아키텍처]PlantUML 메뉴얼
https://plantuml.com/ko/ 간단한 텍스트를 이용하여 멋진 UML 다이어그램을 만들 수 있는 오픈소스 도구입니다. 간단한 텍스트를 이용하여 쉽게 멋진 UML 다이어그램을 만들 수 있으며, 다양한 종류의 다이어그램을 제공하고 있습니다. 또한, 생성된 다이어그램을 PNG, LaTeX, EPS, SVG 와 같은 이미지로 변환할 수 plantuml.com
[Effective C++]항목 3: 낌새만 보이면 const를 들이대 보자!
포인터에도 const사용해야하는 경우에는 적극적으로 사용한다. 1) 포인터 주소를 const = * const type 포인터명 2) 데이터 = const * type 포인터명 / const type *포인터명 포인터의 사용은 프로그래머의 실수를 줄여준다. const는 컴파일러에서 상수화해주기 때문에 성능을 좀 더 높일 수 있다. 상수성에는 크게 비트수준 상수성, 물리적 상수정, 논리적 상수성이 있으며, C++에서 정의하는 상수성은 비트수준 상수성이다. 비트수준의 상수성은 비트수준에서 변경점이 없어야한다. 컴파일러는 대입연산이 수행되었는지만 확인해보면 된다. 상수 멤버함수에서 데이터를 수정하려면 변수 앞에 mutable을 붙여서 상수 멤버함수 안에서 수정이 가능하나, 좋은 방법은 아니므로 꼭 필요한 상황..
[Effective C++]항목 2: #define을 쓰려거든 const, enum, inline을 떠올리자
#define으로 선언하게 되면 값의 이름은 symbol table에 들어가지 않으므로 이슈 발생 시 Debugging으로 추적이 불가하다. 따라서, #define PI 3.14 => const double PI = 3.14; 로 선언하는 것이 좋다. 또한, 여러 번 사용하더라도 한 개의 사본만 생성하기 때문에, #define을 사용하는 것에 비해 바이너리 사이즈를 감소시킬 수 있다. * symbol table: 컴파일러에서 생성한 변수나 함수의 이름들을 말한다.
[Effective C++]항목 1: C++를 언어들의 연합체로 바라보는 안목은 필수
c++은 여러개의 하위 언어를 제공한다. 1. C : 블록, 문장, 선행 처리자, 기본제공 데이터타입, 배열, 포인터 등 모든 것이 C++에서 왔다. 2. 객체 지향 개념의 C++ : 클래스, 캡슐화, 상속, 다형성, 가상 함수(동적 바인딩) 3. 템플릿 C++: 템플릿 메타프로그래밍(template metaprogramming: TMP)이 파생된 것처럼 템플릿을 사용하면 C++에서 적용할 수 있는 범위가 아주 넓다. 템플릿을 잘 사용하면 C++프로그래밍을 잘 할 수 있다. 4. STL(Standard template library): 컨테이너(vector, queue, deque등), 반복자(iterator), 알고리즘, 함수객체(function object) 등 라이브러리를 C++을 사용할 수 있다...
[OpenGL/OpenGLES] vscode에서 OpenGL 실행 환경 만들기
Ubuntu 18.04기준에서 작성했습니다. VSCode 내에서 C++, CMake, CMakeTools 설치하기 glew 설치: sudo apt-get intall libglew-dev glfw3 설치: sudo apt-get install libglfw3-dev libglfw3 glut 설치: sudo apt-get install freeglut3 .vscode 폴더내에 launch.json, tasks.json 파일 만들기 실행시킬 main.cpp 파일과 같은 위치에 CMakeLists.txt파일 만들기 launch.json파일 { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of exist..