목록Categories (1099)
KoreanFoodie's Study
DirectX 11 2D 게임 프로그래밍 - 6. Input Assembler Stage 세팅하기 Rendering Pipeline에는 다음과 같은 스테이지가 있다. IA - VS - RS - PS - OM : 이 중, 오늘은 IA 스테이지인 Input Assembler Stage를 세팅하도록 하겠다. 먼저, DirectX의 기본 데이터인 정점(Vertex)를 만들고, 그 정점들을 파이프라인에 연결할 Buffer형 자원들 만든다. 그 후, Device Context를 활용하여 파이프라인에 Buffer형 자원을 세팅한다. 마지막으로 Primitive Topology 정보로 어떻게 정점을 연결할지 세팅할 수 있다. 알아두어야 할 개념 : 1. vector 란 무엇인가? 2. D3D11_USAGE에 대해 조사..
DirectX 11 2D 게임 프로그래밍 - 5. Window 창에 DirectX 연결(연동)하기 이번 시간에는 이전에 띄웠던 Window 창에 DirectX요소를 넣어 연동해본다. 알아두어야 할 개념 : 1. Design Pattern 조사 2. 정적 변수 복습 -> static member는 class 내부에 하나 밖에 없으며, 클래스에서 공유하는 자원이다. 3. 16진수로 표현되는 색상 정보 조사해보기 -> D3DXCOLOR 변수는 실제로 float[4]로 표현 가능 4. const int* vs int* const 차이? -> 왼쪽은 포인터가 상수인 것. 따라서 가리키는 것을 바꿀 수 있고, 참조하는 변수의 값을 바꿀 수는 있지만, *ptr = new_value식으로는 바꿀 수 없다. 오른쪽은 상..
DirectX 11 2D 게임 프로그래밍 - 3. ID3D11Device, SwapChain, Resource View 개념 및 간단한 초기화 Grahpics.h, Graphics.cpp 파일을 이용하여 백버퍼를 만들고 ID3D11Device(Context)등의 파일들을 초기화해 보자. 알아두어야 할 개념 : 1. Device와 DeviceContext, SwapChain 초기화하면서 사용한 옵션 정리 : 주석으로 정리 2. bpc(bit per color), Anti Aliasing 3. UUID, GUID 4. dangling pointer Graphics.h #pragma once // final : 더는 상속될 수 없다 class Graphics final { public: Graphics(); ..
왜 이렇게 불안할까. 왜 이렇게 답답할까. 잠시 아무 생각 없이 쉬려고 하면 내가 해야 할 일들이 머릿속에 좌르륵 떠오른다. 수많은 일들은 작은 돌멩이 같은 녀석들부터 거대한 바위까지 가지각색의 모습을 하고 있다. 그런 돌덩이들이 모이고 모여 나를 무심하게 짓누른다. 스스로에게 부과한 마음의 짐을 짊어지면서도, 시선은 자꾸 옆을 쳐다보게 된다. 곁눈질을 하면 나보다 더 무거운 바위들을 가뿐히 들고 뛰는 사람들이 있다. 함께 시시껄렁한 농담을 주고받던 친구의 얼굴도 보이고, 가까이 지내고 싶지 않았던 어색한 얼굴들도 보인다. 하지만 한가지 공통점이 보인다. 왜 항상 나를 남겨두고 먼저 달려나가는 것 같은 걸까. 담담한 척 연기를 해왔다. 내가 바라는 인생은 평탄하고 안정된 삶이라고 스스로를 속이며 나의 부..
DirectX 11 2D 게임 프로그래밍 - 2. Direct SDK 연결, Double Buffering 이번 시간에는 기본적인 개념과 Graphics를 다루는 기초 개념에 대해 학습한다. Direct SDK연결은 라이브러리 연결과 Graphics.h의 코드 주석을 통해 익힐 수 있다. 알아두어야 할 개념으로는 Double Buffering이 있다. stdafx.h stdafx.h에 Graphics.h에서 사용할 라이브러리들을 연결해 준다. #pragma once //Window #include #include //DirectX #include #include #include // 라이브러리를 연결하는 전처리기 코드의 표현 #pragma comment(lib, "dxgi.lib") #pragma com..
DirectX 11 2D 게임 프로그래밍 - 1. Window 창 띄우기 먼저 기본적인 Windows API의 기능들을 짚어 나가면서 창을 띄우는 것부터 시작을 해 보자. 알아두어야 할 개념으로는 1. Calling Convention 2. Casting in C++ 3. inline 함수 4. Callback 함수 정도가 있다. stdafx.h 먼저, 미리 컴파일된 헤드를 만들어 주자. stdafx.cpp에서는 stdafx.h를 include 해주기만 하면 된다. #pragma once //Window #include #include typedef unsigned int uint; Windows.h #pragma once #include "stdafx.h" namespace Window { static..
이 글은 '김상형의 SQL 정복'의 예제 코드를 설명하는 방식으로 SQL 쿼리 예제를 소개하고 있습니다. SQL 기초 - 14. 테이블 관리 (테이블 수정, 필드 수정, SQL ALTER) 사실 테이블 컬럼 추가/삭제/변경 등의 작업은 GUI 도구를 사용해서 하는 것이 더 쉽다! 다만 스크립트 환경에서 ALTER 쿼리를 이용해야 하는 상황이 있을 수 있으니, 간단한 예제를 통해 어떤 쿼리가 있는지는 머릿속에 넣어두도록 하자. -- ADD를 통해 컬럼을 추가할 수 있다 ALTER TABLE tCity ADD mayor CHAR(12) NULL; UPDATE tCity SET mayor = '오륙도' WHERE name = '부산'; ALTER TABLE tCity ADD mayor CHAR(12) NOT ..
이 글은 '김상형의 SQL 정복'의 예제 코드를 설명하는 방식으로 SQL 쿼리 예제를 소개하고 있습니다. SQL 기초 - 13. 분석과 통계(소계, 순위, 통계, 피봇) CREATE TABLE tMonthSale ( year INT, month INT, salesINT ); INSERT INTO tMonthSale VALUES(2021, 9, 3650); INSERT INTO tMonthSale VALUES(2021, 10, 4120); INSERT INTO tMonthSale VALUES(2021, 11, 5000); INSERT INTO tMonthSale VALUES(2021, 12, 4420); INSERT INTO tMonthSale VALUES(2022, 1, 3800); INSERT INTO..
이 글은 '김상형의 SQL 정복'의 예제 코드를 설명하는 방식으로 SQL 쿼리 예제를 소개하고 있습니다. SQL 기초 - 12. 뷰 (임시 테이블, CTE) SELECT member, age, addr FROM tMember; -- 간단한 VIEW를 생성하는 예제 -- VIEW는 쿼리문으로 생성하는 가상적인 테이블이다. -- 뷰의 데이터를 수정하면 실제 테이블에도 영향을 끼친다 -- 뷰는 보기 전용으로 이용하는 것이 바람직하다. CREATE VIEW vMember AS SELECT member, age, addr FROM tMember; SELECT * FROM vMember; SELECT member, age FROM vMember; SELECT * FROM vMember WHERE addr LIKE ..
이 글은 '김상형의 SQL 정복'의 예제 코드를 설명하는 방식으로 SQL 쿼리 예제를 소개하고 있습니다. SQL 기초 - 11. 함수 (스칼라 함수, 문자열 함수, 데이터 타입, 날짜와 시간) 사실 DBMS마다 함수도 다르고 종류도 다르다. 그리고 모든 함수를 전부 외울 필요는 없다. 대략적으로 어떤 함수가 존재하는지를 파악해 둔 후, 필요한 함수를 그때 그때 찾아서 쓰는 방식이 더 효율적일 수도 있다! 이 글에서는 오라클을 기준으로 자주 나오는 함수 목록을 소개하며, 예시를 통해 설명한다. 수치함수 문자열 함수 데이터 타입 1. 수치형 2. 문자형 3. 날짜형 4. ANSI 표준 타입 -- AVG, TRIM, ROUND 등의 간단한 연산자는 직접 실습해보자. SELECT AVG(score) FROM t..