전체 글(33)
-
6.9
동적 멤버변수는 소멸자에서 삭제 -> 그렇다면 객체가 사라질때 삭제하지 않는다면 동적 멤버변수는 남아 있음? 예. 멤버가 갖고 있는건 포인터일 뿐이고 동적할당한 데이터는 힙에 그대로 남아있음. 객체가 사라지면 해당 주소를 가르키는 포인터가 사라지기 때문에 메모리 누수 발생 멤버변수도 지역변수와 마찬가지로 초기화 필요. 위임생성자? 특히 배열에 대한 전달은 방식이 여러가지임. 상황에 따라 다를 수 있으니 숙지 포인터, 참조 전달. 크기전달, 배열 통채로 전달 등등..;; 객체의 멤버함수는 this pointer도 전달됨. class의 메서드는 코드영역에 유일하게 존재하기 때문에 어떤 객체에서 호출했는지 알아야 함. const의 의미 1. 상수다. 상수 객체. 상수객체는 멤버들도 변경 불가. 2. 상수 멤버..
2025.06.09 -
6.5
그래픽스 연산에 행렬 사용하는이유는 행렬이 다항 연산의 속도가 빠른 도구이기 때문이다. mutex, semaphore, critical section 등은 멀티스레딩 환경에서의 OS Kernel Objects이다. 단순 구현 방식이 아님. ----------------------------------------------------------------------------------------------C++동적할당 - 런타임시 사용자가 직접 메모리공간에 직접할당 (heap영역) 전역/정적 변수(data)와 지역변수(stack)로 해결되지 않는 경우. (초기값 없는 전역,정적 변수는 BSS영역) 스택은 일단 영역을 많이 주지 않음. void * void pointer 는 타입이 정해지지 않은 포인터 변..
2025.06.09 -
6.2
RAII ( Resource Acquisition Is Initialization ) Direct 장치(GPU, vRam)관리와 그리는 방식을 분리 장치는 달라질 수 있음 DirectX 의 Swap Chain DXGI - DirectX Graphic InfrastructureCOM Instance---------------------------------c++linking은 binary file 간 연결. complie은 해당 file에 대해서만 확인 연결상 오류 (extern)는 link error 배열에 대한 포인터 매개변수 전달시 데이터 decay 문제 value 와 ref 포인터 연산자의 우선순위는 중요하다. class 안에 들어가는 com은 명시적으로 release를 하면 좋음. TODO re..
2025.06.09 -
3. OS의 구조
OS의 주요 역할과 무엇을 다루는지 살펴 보았다면 이제는OS자체가 어떻게 구성되어 있고, 내부적으로 어떻게 동작하는가 살펴보자. 운영체제는 사용자로 하여금 복잡하고 직접 다루기 어려운 하드웨어 자원에 대한 사용과 관리를 용이하게 해준다. 운영체제가 사용자에게 제공하는 서비스에는 많은 것들이 존재한다. 간략하게 보면1. 사용자 인터페이스 제공2. 프로그램 실행3. 입출력 작업4. 파일 시스템 연산(관리)5. 통신6. 오류 탐지7. 자원 할당8. 회계9. 보호이 정도의 서비스를 제공한다. 이 하나하나의 서비스를 사용자에게 어떻게 제공하고, 시스템 내부에서 무슨일이 일어나는지 알아보자. 사용자 인터페이스인터페이스라 함은, 표면이라는 의미와 걸맞게 가장 외부와 맞닿아 있음을 의미한다. 이는 사용자에게 닿기도 하..
2025.04.13 -
4.10 ~ 4.11
Render와 logic Frame의 분리 delta(가변) time 하드웨어 성능에 따른 차이를 보정하기 위해서 time 과 frame 그리고 update 게임 루프 내부를 한 번 실행하면 한 프레임이 지난 것이다. fixed update는 게임 루프 내에서 중첩 루프를 통해 호출된다는 것을 알 수 있다. Invalidate는 기본적으로 화면을 다시그릴 때 WM_PAINT 를 호출 InvalidateRect는 임의로 호출할때 사용 What is D.C Device Context bitBlt? CreateCompatibleDC, GetDC memoryDC와 bitmap 연결 SelectObject memoryDC 는 만든거 Create -> Delete DC는 가져온거 , Get -> ReleaseDC ..
2025.04.11 -
4.5 ~ 4.9
rigidbody drag - 저항 collision detection 물리 계산 보다 빠른 경우 충돌 판정되지 않는 경우에 대한 처리 옵션 constraints 충돌에 의한 의도치 않은 회전 고정. freeze 4.8 모든 window(창)는 각자의 queue 갖는다. 입력 및 여러 동작을 queue에서 처리됨 OS kernel 영역 - kernel 객체 / 사용자 영역 - 사용자 객체 익명 네임스페이스 내부 구현을 외부에 노출하지 않음 CallBack 개념 stdcall? 전역함수 & ? classId = RegisterClassEx(&wc); //? 운영체제에게 클래스 정보로 윈도우 등록정보 요청 //WNDCLASSEX wc를 운영체제에 등록, 식별키(classId)로 윈도우 객체 생성 요청 /..
2025.04.11