목록분류 전체보기 (156)
승쨩개발공부
1. C#은 헤더 파일 임포트가 따로 없다 안보이는 중앙 처리장치에서 일괄 임포트해서 모두 공급한다. 헤더 파일을 임포트하지 않아도 어디에서든 다 사용가능 그럼 c++처럼 선언문(헤더) 정의문(cpp) 나눠서 하고싶은데 어떻게 해야할까.. 대신 C#은 클래스가 너무 길어지는걸 방지하기위해 Partial이라는게 존재. 2. C#은 클래스와 struct가 크게 다르다 c++은 사실 클래스와 Struct(구조체)가 큰 차이가없다 (상속도 가능)C#은 Struct가 상속이 안된다. 그리고 New로 생성하지 않아도 인스턴스가 된다(C# 클래스는반드시 new로 생성해야함 자체는 안됨 구조체는 자체로도 충분하고 New도 가능)C#도 Struct 인스턴스를 따로 만들어줘야한다. 1번이 가장 불편하면서도 편한거같다 코드..
프로퍼티(property)는 일부 객체 지향 프로그래밍 언어에서 필드(데이터 멤버)와 메소드 간 기능의 중간인 클래스 멤버의 특수한 유형이다. 프로퍼티의 읽기와 쓰기는 일반적으로 게터(getter)와 세터(setter) 메소드 호출로 변환된다. 선언은 Get Set함수와 다를것이없지만 Set함수는 외부 인자를 받아야하고 프로퍼티는 자료형을 설정한대로 Get Set도 같은 자료형으로 받게되고 외부 값을 value로 설정해놓으면 넣은값이 들어가게된다. 사용법 아직까진 c++ 문법이 너무 익숙해서 Get,Set이 더 편하게 느껴지지만 분명 쓰기 편할태니 자주 이용해봐야겠다.
개발기간 1달 4인 팀 PortFolio C++,DX9
랜더링 기본 단위 3D 랜더링에는 기본 단위가 있는데, 정식 명칭은 Primitive Type 이다. Primitive Type 에는 (Point List), (Line List), (Line Strip), (Triangle List), (Triangle Strip), (Triangle Fan) 이렇게 6가지가 있다. Point List Point List는 정점들만 찍는 랜더링이다. 정점은 3D 공간 좌표이지만 지금은 Z값이 일정해서 깊이 차이는 없다. Line List Line List는 정점 2개 단위로 이어서 랜더링 하는 것이다. 시작점과 끝점이 존재하므로 선분을 만들게 된다. API LineTo 함수와 유사. 정점 2개가 짝을 이룬다는개 핵심. Line Strip Line Strip은 정점을 계..
프레임 버퍼 그래픽 카드 VRAM에는 Frame Buffer라는 영역이 존재한다. Frame Buffer는 전면 버퍼(Front Buffer) 후면 버퍼(Back Buffer)가 존재한다. 그래픽 카드가 없다면 DirectX가 내부적으로 생성해서 사용한다. 전면 버퍼와 후면 버퍼가 서로 계속 교환되며 화면의 출력된다 후면 버퍼는 색상 버퍼, 깊이 버퍼, 스텐실 버퍼로 분류되는데 일반적으로 깊이 스텐실 버퍼는 하나로 묶어서 사용한다. 깊이 버퍼에 24비트, 스텐실 버퍼에 8비트를 주고 합해서 32비트를 사용한다. 물론 깊이 버퍼만 사용하는 것도 가능하다. 수직 동기화 수직 동기화가 뭐냐면 그래픽 카드의 렌더링 갱신 속도를 모니터의 출력 갱신 속도에 맞춘다는 의미이다. 더블 버퍼링이 모니터의 깜빡임을 방지하..
프로그램의 실행과정 실행파일의 생성 과정 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 1. 전처리기의 치환 작업 전처리기는 '#include' , '#define' 과 같이 '#'으로 시작하는 지시자의 지시에 따라서 소스코드를 적절히 변경하는 작업을 한다. 2. 컴파일러에 의한 번역 전처리기에 의해 변경된 소스코드는 여전히 C언어로 구성되어 있다. 이 소스코드는 컴파일러에 의해서 어셈블리 코드로 번역된다. 3. 어셈블러에 의한 바이너리 코드 생성 바이너리 코드는 1과 0으로만 구성되는 코드이다. 컴파일러에 의해 번역된 어셈블리 코드는 컴퓨터에 의해 실행되기 앞서서 바이너리 코드로 번역 되어야 한다. 컴퓨터는 1과 0만 이해하기 떄문이다. 이처럼 CPU가 이해할 수 있는 바이너리 코드로 바꾸어 주는 프..