728x90

소스코드 160

4. Primitive Type

Primitive Type # 여러가지 Topology 타입을 소개하기 위한 예제이지만 이후에는 이미지 디버깅 용도로 사용하게 된다. # 상수 버퍼를 사용하는 예제에서의 쉐이더를 쓰면 선이 안 나오니 주의. 그래서 상수 버퍼 예제를 이 다음으로 옮겼다. 샘플 업데이트sample.h #pragma once #pragma comment(lib, "TLib.lib") #include "zCore.h" #include "mathHeader_L.h" namespace Lypi { class Sample : public zCore { // 버텍스 버퍼 및 레이아웃 ID3D11Buffer* m_pVertexBuffer; //정점 버퍼 인터페이스 ID3D11InputLayout* m_pVertexLayout; //정점..

3. VertexBuffer, IndexBuffer

Vertex Buffer 일단 아래와 같은 쉐이더 파일을 라이브러리 혹은 샘플 폴더에 만들자. # 쉐이더 코드는 txt로 적어도 아무런 상관이 없다. # 구문 강조 기능을 위해서 확장자를 hlsl로 했다면 설정에서 빌드에서 제외를 해주는 것이 정신건강에 이롭다. # 픽셀 쉐이더에서 하얀색으로 지정했다. VS.txt float4 VS(in float4 p : POSITION) : SV_POSITION { return p; } PS.txt float4 PS(in float4 p : SV_POSITION) : SV_Target { return float4(1.0f, 1.0f, 1.0f, 1.0f); } # 아래와 같이 코드를 작성하면 화면에 사각형이 그려진다. #쉐이더 파일의 경로에 주의할 것. #T를 누르면..

2. Timer, Input, Write

# Timer : 게임내 시간을 측정하는 기능 # Input : 키 입력을 받는 기능 # Write : 화면에 간단한 텍스트를 띄우는 기능.# 타이머와 입력한 키에 대한 정보를 텍스트로 띄어주는 내용.# 여기까지 1차적인 라이브러리 내용이다. DxTimer.h #pragma once #include "stdHeader_L.h" namespace Lypi { class DxTimer { private: LARGE_INTEGER m_liFrequency; //초당 주파수 LARGE_INTEGER m_liCurTime; //현재 프레임에서의 시간 LARGE_INTEGER m_liBefTime; //이전 프레임에서의 시간 LARGE_INTEGER m_liBef1sTime; //1초전 시간 float m_dGam..

1. 윈도우 띄우기

# 아무 기능 없이 윈도우만 띄우는 기능까지만 들어간 라이브러리. # 헤더파일의 DX관련 헤더와 라이브러리는 참조하기 쉽게 위치를 옮겨놨다. # 실질적인 기능은 zCore파일에서 정의된다. stdHeader_L.h #pragma once #define DIRECTINPUT_VERSION 0x0800 #define _CRT_SECURE_NO_WARNINGS #pragma warning( disable:4005) //매크로 재정의 에러 띄우지 않기. //#define _DISABLE_EXTENDED_ALIGNED_STORAGE //메모리 자동 정렬 사용 안함? #pragma region //헤더 파일 및 라이브러리 파일 추가 #include #include //Windows Runtime C++ Templa..

0. Sample Main

# 이 카테고리의 포스팅에는 코드만 있을 뿐 코드에 대한 자세한 설명은 모두 생략되어 있다. 나아중에 시간이 나거나 필요하면 추가할지도... # 라이브러리를 실행시키기 위해 만든 main용 프로젝트.# 현재 특별한 내용은 없음.# Init(), Frame(), Render(), Release()는 기본적으로 정의하는 메소드로 약속한다. sample.h #pragma once #pragma comment(lib, "TLib.lib") #include "zCore.h" namespace Lypi { class Sample : public zCore { public: bool Init(); bool Frame(); bool Render(); bool Release(); public: Sample(LPCTSTR..

16. 행렬(3) - 행렬 클래스 구현

// 구현 예시임 header struct float2x2 { union { struct { float _11, _12; float _21, _22; }; float m[2][2]; float2 _1, _2; }; float2x2(); float2x2(float2 __1, float2 __2); //복사연산자 기본값으로 정의 float2x2(const float2x2&) = default; float2x2(float2x2&&) = default; //대입연산자 기본값으로 정의 float2x2& operator= (const float2x2&) = default; float2x2& operator= (float2x2&&) = default; }; struct float3x3 { union { struct ..

15. 벡터(4) - 벡터 클래스 구현

// 그냥 "이런식으로 구현할 수 있다." 의 수준이므로 실제 사용은 상용 라이브러리를 쓸 것을 권장. DirectXMath.h라던가... xnamath.h라던가...// 그러므로 include문은 생략. header struct float2 { union { struct { float x, y; }; float f[2]; }; float2(); float2(float _x, float _y); }; struct Vector2 : float2 { static const Vector2 Zero2; static const Vector2 UnitX2; static const Vector2 UnitY2; //생성자 Vector2(); explicit Vector2(float x); Vector2(float x,..

C++ ESPRESSO 1-2. 제어문과 함수 / programming

1. 사용자로부터 세 개의 정수를 입력받은 후 가장 작은 값을 결정하는 함수 get_minimum(x1, x2, x3)을 작성해라. (if-else문 사용) 2. 하나의 연산기호와 두 개의 숫자를 입력받아 연산하는 프로그램을 작성하라. (각각의 연산을 함수로 작성할 것.) 3. 키보드로부터 하나의 문자를 읽어 이 문자가 공백문자이면 그 종류를 출력하는 프로그램을 작성하라. (각각의 과정을 함수로 작성할 것) 4. 1~100 사이의 숫자를 랜덤으로 생성하여 입력받은 숫자와 같은지 확인하는 프로그램을 작성하라. (번호 생성과 같은지 여부를 확인하는 함수를 각각 작성할 것) 5. 컴퓨터와 가위바위보를 하는 프로그램을 작성하라. 6. 사용자로부터 소득을 입력받아 소득 구간에 따른 소득세를 계산하는 프로그램을 작..

20. 우선순위 큐(Priority Queue) -b. 힙 기반

우선순위큐와 힙 # 힙을 우선순위큐를 염두에 두고 구현했기 때문에 아래의 코드는 힙에서 달라진게 함수명밖에 없다. # 그래서 우선순위큐를 구현하는 것을 힙을 구현하는 것과 동일시하기도 한다. C++로 구현한 힙 기반의 우선순위 큐 #pragma once class PQ_Heap { int* capacity; int iSize; int iCount; int* tRet; private: int ParentIndex(int index); // 지정한 노드의 부모 노드의 인덱스를 반환 int LeftIndex(int index); // 지정한 노드의 왼쪽 노드의 인덱스를 반환 int RightIndex(int index); // 지정한 노드의 오른쪽 노드의 인덱스를 반환 public: bool Add(int d..

20. 우선순위 큐(Priority Queue) -a. 이진탐색트리 기반

우선순위 큐 # 큐가 들어온 시간에 따라 우선순위를 정한 것이고, 스택이 들어온 시간의 역순으로 우선순위를 정해 우선순위가 높은 것을 먼저 내보내는 자료구조라면 우선순위 큐는 데이터에 따라 다르게 정해지는 우선순위에 따라 먼저 내보낼 자료구조를 정하는 자료구조이다. # 우선순위 큐는 들어온 순서에 상관없이 우선순위가 높은 것을 가장 먼저 내보낸다는 것만 지켜지면 되는 추상적인 자료구조이다. # 우선순위 큐는 데이터의 값을 대소비교해서 우선순위를 정할 수도 있고, 우선순위를 따로 표시하는 태그를 가질수도 있다. # 우선순위 큐의 ADT Add : 우선순위 큐에 데이터 삽입하기. Remove : 가장 우선순위가 높은 데이터 삭제하기. (혹은 내보내기) Retrieve : 가장 우선순위가 높은 데이터 확인하기..

반응형