henc · 디스플레이·렌더링
뷰 생성·삭제, 렌더링, 버퍼 스왑, 텍스처·업데이트 카운터
hencCreate
섹션 제목: “hencCreate”함수 원형
섹션 제목: “함수 원형”int hencCreate( HWND hwnd )- 지도 전시 대상 창에 대해서 사용될 정보인 HGLRC와 HDC를 생성한다.
- OpenGL API 사용을 위해서는 반드시 전시 대상창이 있어야만 한다.
- 모든 전시와 관련된 API는 함수를 통해 전시 준비를 하여야 하며, 사용 전에는 반드시 함수를 사용 후에 호출해야 한다.
- 복수의 창에서 전시하는 경우에는 함수로 전시할 창을 구분한다. 그러나 전시 설정은 단일 설정으로 동작하며, 각 창별로 따로 설정할 수는 없다. 예를 들면 지도의 축척, 중심 위경도는 1 개의 상태값 만 있으며, 각 창과는 독립적이다.
HWND : IN (전시 대상 창)
반환값
섹션 제목: “반환값”= 0 : 성공. < 0 : 실패
hencDelete
섹션 제목: “hencDelete”함수 원형
섹션 제목: “함수 원형”int hencDelete( HWND wnd )지도 전시 대상 창에 대해서 사용될 정보인 HGLRC와 HDC를 제거한다.
HWND : IN (전시 대상 창)
반환값
섹션 제목: “반환값”= 0 : 성공. < 0 : 실패
hencGetGLRC
섹션 제목: “hencGetGLRC”함수 원형
섹션 제목: “함수 원형”HGLRC hencGetGLRC( HWND hwnd )지정 창에 해당되는 HGLRC를 획득한다.
HWND : IN (전시 대상 창)
반환값
섹션 제목: “반환값”!= NULL : HGLRC == NULL : 실패 (전시 대상 창 정보가 없음)
hencGetDC
섹션 제목: “hencGetDC”함수 원형
섹션 제목: “함수 원형”HDC hencGetDC( HWND hwnd )지정 HWND 창에 사용되는 HDC를 획득한다.
HWND : IN (전시 대상 창)
반환값
섹션 제목: “반환값”!= NULL : HDC == NULL : 실패 (전시 대상 창 정보가 없음)
함수 원형
섹션 제목: “함수 원형”HDC hencGetDC()현재 전시 창에 사용되는 HDC를 획득한다.
없음
반환값
섹션 제목: “반환값”!= NULL : HDC == NULL : 실패 (현재 전시 대상 창 없음)
hencSelect
섹션 제목: “hencSelect”함수 원형
섹션 제목: “함수 원형”int hencSelect( HWND hwnd )지도 전시 대상 창을 지정한다.
HWND : IN (전시 대상 창)
반환값
섹션 제목: “반환값”= 0 : 성공 < 0 : 실패
hencGetHwnd
섹션 제목: “hencGetHwnd”함수 원형
섹션 제목: “함수 원형”HWND hencGetHwnd( )설정된 전시 대상 창의 윈도우 핸들을 획득한다.
없음
반환값
섹션 제목: “반환값”!= NULL : HWND (전시 대상 창 핸들) == NULL : 실패 (전시 대상 창 없음)
hencClearBackground
섹션 제목: “hencClearBackground”함수 원형
섹션 제목: “함수 원형”int hencClearBackground()현재 선택된 전시 창에 전체 OpenGL 전시 버퍼를 지운다. 따라서, 이전에 그려진 지도 내용이 삭제되어서 재사용할 수 없게 된다. OpenGL의 전시 버퍼 만을 지우는 기능이므로 현재 창의 화면에는 영향이 없다. 함수가 필요
없음
반환값
섹션 제목: “반환값”= 0 : 성공 < 0 : 실패
hencSetViewport
섹션 제목: “hencSetViewport”함수 원형
섹션 제목: “함수 원형”int hencSetViewport( int x, int y, int w, int h )전시 버퍼의 지도 영역을 지정한다. hencSelect() 함수가 필요
int x : IN (WinPos, 윈도우 좌표계, 전시 영역 좌측 상단 지정) int y : IN (WinPos, 윈도우 좌표계, 전시 영역 좌측 상단 지정) int w : IN (WinPos, 윈도우 좌표계, 전시 영역 폭 지정) int h : IN (WinPos, 윈도우 좌표계, 전시 영역 높이 지정)
반환값
섹션 제목: “반환값”= 0 : 성공 < 0 : 실패
hencClearViewport
섹션 제목: “hencClearViewport”함수 원형
섹션 제목: “함수 원형”int hencClearViewport()전시 버퍼의 지도 영역만을 삭제한다. 함수가 필요
없음
반환값
섹션 제목: “반환값”= 0 : 성공 < 0 : 실패
hencRender
섹션 제목: “hencRender”함수 원형
섹션 제목: “함수 원형”int hencRender()- 전시 버퍼의 지도 영역에 지도를 그린다. 현재의 설정에 맞게 전 지도를 그린 후에 Return하는 함수로서, 지도의 용량에 따라 긴 시간이 소요될 수 있다. 이는 버퍼에만 그려지며 실제 화면에는 나타나지 않는다.
- 화면 표시 함수를 호출한 후에 실제로 화면에 나타나게 된다.
- 함수가 필요
없음
반환값
섹션 제목: “반환값”- = 0 : 성공
- < 0 : 실패
hencRenderWaitFinish
섹션 제목: “hencRenderWaitFinish”함수 원형
섹션 제목: “함수 원형”int hencRenderWaitFinish()- OpenGL의 특성상 버퍼에 그린 후 곧바로 그림이 완성되지는 않기 때문에 일정한 시간 동안 대기가 필요하다. 이는 그림이 완성될 때까지 대기를 하기 위한 함수이다. 대부분의 경우 이 함수의 사용이 불필요하다.
- 함수가 필요
없음
반환값
섹션 제목: “반환값”- = 0 : 성공
- < 0 : 실패
hencRenderReset
섹션 제목: “hencRenderReset”함수 원형
섹션 제목: “함수 원형”int hencRenderReset()- 부분적인 그리기를 준비한다. 함수와는 다르게 전시 준비만 수행한다.
- 함수가 필요
없음
반환값
섹션 제목: “반환값”- = 0 : 성공
- < 0 : 실패
hencRenderMore
섹션 제목: “hencRenderMore”함수 원형
섹션 제목: “함수 원형”int hencRenderMore()- 전체 지도 그리기 과정 중 하나의 요소 만을 그린다. 즉, 부분 그리기를 제공하기 때문에 단 시간에 결과가 리턴된다. 이 함수를 반복하여 호출하면 전체 그리기 과정을 순차적으로 진행, 완료할 수 있다.
- , 함수가 필요
없음
반환값
섹션 제목: “반환값”-
0 : 하나의 요소 그리기 성공 (더 그릴 요소가 남아 있는 경우)
- = 0 : 하나의 요소 그리기 성공 (전체 그리기 완료된 경우)
- < 0 : 실패
hencRenderStop
섹션 제목: “hencRenderStop”함수 원형
섹션 제목: “함수 원형”int hencRenderStop()- 부분 그리기 과정을 중단하고, 과정 중 생성된 임시 정보들을 삭제한다.
- 지도 버퍼에는 미 완성된 지도 그림이 남아있게 된다.
- , 함수가 필요
없음
반환값
섹션 제목: “반환값”-
= 0 : 성공
- < 0 : 실패
hencRenderMoreTimed
섹션 제목: “hencRenderMoreTimed”함수 원형
섹션 제목: “함수 원형”int hencRenderMoreTimed( DWORD msec = 100 )- hencRenderMore()와 동작은 동일하나 일정한 시간 동안에 다수의 요소를 그리도록 하는 함수이다. 지정된 시간 이상을 경과하면 함수는 자동 리턴된다.
- , 함수가 필요
없음
반환값
섹션 제목: “반환값”-
0 : 하나의 요소 그리기 성공 (더 그릴 요소가 남아 있는 경우)
- = 0 : 하나의 요소 그리기 성공 (전체 그리기 완료된 경우)
- < 0 : 실패
hencSwapBuffer
섹션 제목: “hencSwapBuffer”함수 원형
섹션 제목: “함수 원형”int hencSwapBuffer()- 전시 버퍼의 내용을 화면에 표시한다. 이 함수는 OpenGL의 특성을 이용하는 것으로, 실제 화면 상에 표시되는 것은 함수가 리턴되는 시점 이후에 이루어지는 비동기 함수이다. 따라서 CPU를 좀 더 활용할 수 있기 때문에 성능 향상에는 도움이 된다. 그러나, 창에 HDC를 이용해 그리기는 할 경우에는 원치 않는 결과가 발생될 수 있음을 주의해야 한다.
- 이 함수가 호출되는 경우, 전시 버퍼에는 지도 내용이 남아 있지 않거나 잘못된 것이 남아 있을 수 있다. 이는 OpenGL 디바이스 드라이버에 따라 다를 수도 있으며, 일반적으로는 지도의 내용이 남아 있지 않는다.
- 함수가 필요
- 전체 지도 그리기 또는 부분 지도 그리기 과정 이후에 사용 가능
- 전체 지도 그리기 :
- 부분 지도 그리기 : , , 등
없음
반환값
섹션 제목: “반환값”- = 0 : 성공
- < 0 : 실패
hencCopyBuffer
섹션 제목: “hencCopyBuffer”함수 원형
섹션 제목: “함수 원형”int hencCopyBuffer()- 전시 버퍼 내용을 화면에 복사한다. 이 함수는 전시 버퍼의 내용은 그대로 보존하면서 복사하여 화면에 표시하기 위한 것으로서 OpenGL 전시가 완료될 때까지 대기한 후에 복사를 수행하는 동기 함수이다.
- OpenGL 전시가 완료될 때까지 대기한 후에 복사를 수행하는 동기 함수이다. 전시가 완료되기를 대기하므로 에 비해 상대적으로 CPU 활용도는 떨어지지만, 이후 전시 화면에 HDC를 사용해서 그리기를 할 수 있다.
- 이 함수를 호출한 후에도 전시 버퍼에는 이전 지도의 내용이 그대로 남아 있게 된다.
- 함수가 필요
- 전체 지도 그리기 또는 부분 지도 그리기 과정 이후에 사용 가능
- 전체 지도 그리기 :
- 부분 지도 그리기 : , , 등
없음
반환값
섹션 제목: “반환값”- = 0 : 성공
- < 0 : 실패
hencEncfileIsRendered
섹션 제목: “hencEncfileIsRendered”함수 원형
섹션 제목: “함수 원형”bool hencEncfileIsRendered( int no )특정 ENC 파일이 현재 화면에 일부라도 표시되고 있는지 여부를 판정한다.
- 지도셀은 로드되는 순서대로 0번부터 번호가 부여된다.
반환값
섹션 제목: “반환값”- true : 일부 또는 전체가 화면에 표시되고 있음을 의미
- false : 화면 영역에 포함되지 않음을 의미
hencCaptureMapTexture
섹션 제목: “hencCaptureMapTexture”함수 원형
섹션 제목: “함수 원형”GLuint hencCaptureMapTexture( GLuint texture = 0 )- 현재 지도 전시를 위한 버퍼 전체의 내용을 텍스처로 만든다.
- Texture 번호가 0인 경우, 새로 생성
- Texture 번호가 0이 아닌 경우, 주어진 Texture 번호를 재사용
GLuint texture : IN (OpenGL Texture 이름)
반환값
섹션 제목: “반환값”OpenGL Texture 이름
hencRenderMapTexture
섹션 제목: “hencRenderMapTexture”함수 원형
섹션 제목: “함수 원형”void hencRenderMapTexture( GLuint tex )이전에 보관해 둔 지도 전시를 위한 버퍼 저장 Texture를 이용해서 화면에 지도를 도시한다. 캡쳐할 당시와 동일은 창이고 창 크기의 변화가 없는 경우에만 정상적으로 그려지게 된다.
GLuint texture : IN (OpenGL Texture 이름)
반환값
섹션 제목: “반환값”없음
hencGetMapUpdateCounter
섹션 제목: “hencGetMapUpdateCounter”함수 원형
섹션 제목: “함수 원형”DWORD hencGetMapUpdateCounter()- 현재창에 대한 변경사항 카운터 값을 획득한다.
- 변경사항 카운터 값을 클리어(clear) 한 후 전시 버퍼를 새로 그려야 하는 설정의 변경사항을 확인할 수 있는 카운터 값이다.
- 이 값은 개별창을 기준으로 전시 버퍼에 대한 변동치 값이다.
- 지도 설정이 바뀔 경우에는 모든 전시창의 변동치 값이 올라가고,
- 개별창의 전시 설정이 바뀔 경우에는 해당하는 창의 변동치 값만 올라간다.
- 단일 Viewport에 대해서만 유효한 값이며, 다수의 Viewport인 경우에는 직접 변동 여부를 확인해야 한다.
없음
반환값
섹션 제목: “반환값”변경사항 카운터 값
hencClearMapUpdateCounter
섹션 제목: “hencClearMapUpdateCounter”함수 원형
섹션 제목: “함수 원형”void hencClearMapUpdateCounter()현재창에 대한 변경사항 카운터 값을 지운다.
없음
반환값
섹션 제목: “반환값”없음
hencIncMapUpdateCounter
섹션 제목: “hencIncMapUpdateCounter”함수 원형
섹션 제목: “함수 원형”void hencIncMapUpdateCounter()수동으로 현재창에 대한 변경사항이 있음을 표시한다.
없음
반환값
섹션 제목: “반환값”없음
hencIncMapUpdateCounterAll
섹션 제목: “hencIncMapUpdateCounterAll”함수 원형
섹션 제목: “함수 원형”void hencIncMapUpdateCounterAll()수동으로 전체창에 대한 변경사항이 있음을 표시한다.
없음
반환값
섹션 제목: “반환값”없음
hencClearMapUpdateCounterAll
섹션 제목: “hencClearMapUpdateCounterAll”함수 원형
섹션 제목: “함수 원형”void hencClearMapUpdateCounterAll()모든 창에 대한 변경사항 카운터를 지운다.
없음
반환값
섹션 제목: “반환값”없음