유영천님 DirectDraw 예제코드 : https://github.com/megayuchi/PixelHorizon 유영천님 강의 : https://www.youtube.com/live/xrYT5l5mYR8?si=FtP0CXsgI8wIbfEE
DirectDraw란
Surface

Surface 이미지
Color Keying
0번 압축 (Color값 압축)
2D 게임제작에서 중요한 것은 투명처리
투명처리는 Color Key(특정 색상)을 기준으로 수행
이 때, 매 프레임마다 모든 픽셀을 검사하는 것은 비효율적이기에 데이터를 압축시켜 둠
Linked List들의 배열(혹은 이차원 배열) 형태로 이미지의 각 Row별로 Color값의 위치정보와 연속된 Color값을 가지는 픽셀 수를 기록
0번 압축은 공식용어는 아님
RLE(Run-Length Encoding) 압축 방식의 변형
메모리 소모가 적고, 속도가 빠름

0번 압축 이미지
COMPRESSED_LINE 구조체
dwStreamNum : 현재 스트림(Row) 번호dwLineDataSize : 해당 라인에서의 압축된 데이터 크기(바이트 단위)pPixelStream : PIXEL_STREAM 구조체들의 배열(포인터)PIXEL_STREAM 구조체
wPosX : 라인에서 연속된 픽셀의 시작 X 좌표wPixelNum : 동일한 색상을 가진 연속된 픽셀의 개수dwPixel : 이 픽셀들이 가진 색상 값.