본문 바로가기

전체 글332

Direct2D - 텍스트 DirectWrite 사용. IDWriteTextLayout 인터페이스 제공. *텍스트 그리기 함수들. DrawText: 간단한 렌더링 방법 제공. IDWriteTextFormat 객체로 포매팅을 명시. DrawTextLayout: 복잡한 레이아웃과 융통성을 제공. IDWriteTextFormat 객체로 포매팅을 명시. DrawGlyphRun: 글리프(glyph) 레벨의 정교한 제어가 가능. 측정(measurement) 지원 함수들을 사용 제어값을 만듬. *단순하게 텍스트 그리기. // 초기화 설정. // ID2D1Factorys는 D2D1CreateFactory 함수 호출 생성. ID2D1Factory* pD2DFactory = NULL; D2D1CreateFactory(D2D1_FACTORY_TYPE.. 2019. 9. 30.
Direct2D - 비트맵(Bitmap) *비트맵 객체 만들기 ;ID2D1Bitmap로 표현. 장치 의존적 자원. 렌더타겟과 수명을 함께 함. *비트맵 로드 ;D2D에서는 WIC(Windows Imaging Component)를 사용하여 비트맵을 로드함. *비트맵 그리기 ;ID2D1RenderTarget의 DrawBitmap 함수를 호출. void ID2D1RenderTarget::DrawBitmap( ID2D1Bitmap* bitmap, CONST D2D1_RECT_F* destinationRectangle = NULL, FLOAT opacity = 1.0f, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, CONST D2D1_RE.. 2019. 9. 27.
Direct2D - 붓(Brush) *컬러(color) ;D2D1_COLOR_F 구조체로 표현. // D2D1_COLOR_F typedef struct _D3DCOLORVALUE { float r; // 빨강 float g; // 초록 float b; // float a; // 0=투명,1=불투명 } D3DCOLORVALUE; cs *컬러 클래스 // ColorF(UINT32 rgb, FLOAT a = 1.0) ColorF(0x9ACD32, 1.0f); // ColorF(Enum knownColor, FLOAT a = 1.0) ColorF(D2D1::ColorF::Black, 1.0f); // ColorF(FLOAT red, FLOAT green, FLOAT blue, FLOAT alpha = 1.0) ColorF(0.93f, 0.94f,.. 2019. 9. 27.
Direct2D - 기하 *기하 ;그릴 대상 객체의 모양 정보. 정점들의 좌표값들과 면 구성 정보. ID2D1Geometry를 상속한 인터페이스의 객체로 표현됨. -단순한 기하(simple geometry) -경로 기하(path geometry) -복합 기하(composite geometry) *기하의 생성 ;장치 독립적인 자원. ID2D1Factory의 함수를 호출하여 생성. CreateXxxGeometry 함수 사용. Xxx 는 Rectangle, Path 등. *기하의 렌더링 ;렌더타겟의 DrawGeometry 함수나 FillGeometry 함수를 호출. virtual void ID2D1RenderTarget::DrawGeometry( _In_ ID2D1Geometry *geometry, _In_ ID2D1Brush *br.. 2019. 9. 26.
Direct2D - 변환 ;변환은 한 좌표 공간에서 정의된 위치를 동일 좌표 공간 또는 다른 좌표 공간에서의 위치로 매핑하는 기능을 수행함. 2차원 공간에서의 변환. 모든 좌표는 동차 좌표로 표현. 좌표(x, y)의 동차 좌표식 표현은 (x, y, 1)이다. 동차 좌표로 표현 한 점 v를 다른점 v'로 변환하는 경우. 선형 변환의 경우에는 변환이 행렬로 표현될 수 있음. 즉 v를 v'로 변환하는 식이 v' = vT 로 표현됨. 여기서 T와 같이 변환을 표현하는 행렬을 변환행렬이라고 함. https://commons.wikimedia.org/wiki/File:2D_affine_transformation_matrix-ko-001.svg#/media/파일:2D_affine_transformation_matrix-ko-001.svg F.. 2019. 9. 26.
Direct2D - 렌더타겟 *렌더타겟(render target) ;장면을 그리기 위한 자원들을 생성하고 그리기 연산들을 수행하는 추상화된 핵심 자원. ID2D1RenderTarget을 상속한 자원으로 표현. ID2D1HwndRenderTarget: D2D의 대표적인 타입. ID2D1DCRenderTarget: 한 GDI 장치 컨텍스트에 렌더하는 타입. *그리기 명령 ;획(stroke), 채우기(fill) 대부분 첫 번째 인자로 하나의 기본도형(primitive)나 기하(geometry). 두 번째 인자는 하나의 붓(bruch). D2D의 렌더링에 있어서 좌표계는 왼손 좌표계를 사용함. +x축: 오른쪽 방향, +y축: 아래쪽 방향. 그리기 함수들 외에도 클리핑, 불투명 마스크(opacity mask) 적용, 좌표 공간 변환 등의 함.. 2019. 9. 26.