본문 바로가기

FLTK

(45)
Fl_GroupAniSwitch, version 01 FLTK 내에서 Fl_Group 간 페이지 전환 애니메이션을 구현한 소스를 공개 합니다. 같은 크기의 Fl_Group 만을 테스트 한 것이라 분명 다른 크기를 사용하면 버그가 발생 할 것으로 보이며, JUSTSHOW 에 대해서도 아직 테스트가 되지 않은 점을 고려해서 사용해 주시면 좋겠습니다. 소스는 아래에서 받아서 사용하실 수 있으며, FLTK license 와 MIT License 제한이 있습니다만, FLTK 사용했다와, 원래 저작자 소스 표시등을 어디에든 하면 상용이던 뭐던 제한없이 사용할 수 있습니다. 사용 방법은 다음과 같이 구현 하시면 되고, WaitForFinish() 는 내부에서 Fl::wait( 10 ) 을 호출 하므로, Thread 내에서 그리실 때엔 다른 구현이 필요 할 수 있음을 고..
FLTK Fl_Group 을 blur 된 배경 이미지로 만들기. FLTK 1.3.4-1 부터 좀 더 강력 해 진 영역이 있다면, 바로 Offscreen surface 에 특정 FLTK widget 을 그려 이것을 Fl_RGB_Image 로 만들 수 있다는 것 입니다. 그래서 아래 처럼 빨간 점선 안의 특정 영역 (Fl_Group* grpViewer 영역) 을 Fl_RGB_Image 로 만들고, 이를 fl_smimg 를 이용하여 burred 된 이미지로 간단히 만들 수 있습니다. ▼ 이 방법은 다음과 같은 원리로 진행 됩니다. (필요 사항, fl_smimg) bool Fl_GroupAniSwitch::generate_blurred_img( Fl_Group* src, Fl_RGB_Image* &dst ) { if ( src != NULL ) { Fl_Image_Surfa..
FLTK 에 부족한 페이지 전환 애니메이션 추가중 .. FLTK 에 없다 싶이 한 기능 중 하나가, 바로 애니메이션 처리 입니다. 요즘 GUI 대세를 보면 뭔가 간단한 애니메이션이라도 집어 넣어 만드는게 예의가 아닌가 하는 바람으로 가칭 Fl_GroupAniSwitch() 라는걸 만들어 보고 있습니다. FLTK 특성상, 배경이 안그려 지는 것들을 감안해서 Fl_Group 중, 가려지는 것에 대해 offscreen 으로 이미지를 그린 다음, 이것을 Bilinear 로 10%로 줄였다가 다시 원래 크기로 Bicubic Filter를 적용해서 그리면 보통 우리가 아는 Blurred background 가 됩니다. 현재 제가 만들어 쓰는 fl_smimg 가 OpenMP 를 적용해서 돌기 때문에 1080p 정도의 이미지는 얼마 걸리지 않는 시간 내에 처리가 가능한 관..
[FLTK] HICON 에서 Fl_RGB_Image 로 변환. 이 소스 코드는 rk HDRi Studio 을 만들면서 필요에 의해서 만들어진 것 입니다만, FLTK 에서 자체적으로 윈도우를 만들어 쓸 때, 아이콘을 그리고 싶은데 막상 HICON 을 이미지 원본으로는 쓸 수 없을때 Alpha 를 가진 32bit RGB 이미지로 만들어 쓰기에 좋다고 하겠습니다. 먼저 icon_to_flrgb() 함수는 다음과 같습니다. Fl_RGB_Image* icon_to_flrgb(HICON hIcon) { BITMAP bm; ICONINFO iconInfo; GetIconInfo(hIcon, &iconInfo); GetObject(iconInfo.hbmColor, sizeof(BITMAP),&bm); int width = bm.bmWidth; int height = bm.bmHe..
FLTK MDI form 구현... HDR imaging 을 시작 한 바, 이젠 color 쪽에서도 처리 할 수 있도록 만들고자 나름 있어 보이는 이름의 RK HDRi Studio 란걸 Open Source 로 만들기 시작 했습니다. 물론 아직 commit 은 커녕, repository 도 만들지 않았습니다만. 제목은 MFC 에나 있는 MDI form 을 FLTK 에서 구현 해 보고 있습니다만, 문득 드는 생각이 ... 이 짓거릴 왜 구현하고 있는거지? 란 생각이 듭니다. 그래도 만든거고 하니 어쨋든 관련 소스는 공개 할 생각 이긴 합니다만, 대체 이걸 구현해서 이 구태적인 GUI 형태를 왜 써야 하는걸까? 란 의문도 들고, 복잡 하네요. 구현도 그리 좋지 못하고. FLTK 를 쓰고 있지만, 윈도우 자체는 자체에서 그리는 형태가 되서 th..
fltk-1.3.4.1-ts Mac OS 맥용 빌드 업데이트 ! 제가 FLTK-1.3.4-1 에서 clone 하여 사용 하고 있는 fltk-1.3.4-1-ts 판의 업데이트가 있었습니다. 보통 한 PC 에서만 쓰다 보니, 다른 PC 에서 쓰기 전 까지는 문제점을 못 발견 하는 것이 1인 개발자의 한계인 듯 합니다만 .. 어쨋든 간만에 맥에서 전체를 내려 받아 빌드 해 보니 문제가 많다는 점을 발견하고 대부분 수정 하였습니다.위치: https://github.com/rageworx/fltk-1.3.4-1-ts 맥이던 어디던 git 가 설치 되어 있다면 clone 을 해서 사용이 가능 합니다. 다만, Windows 에서 MSYS 와 MinGW-W64 를 이용해서 빌드 하신다면, config64.sh 를 한번 해 주셔서 configure 를 하신 다음 빌드 하시거나, cp..
여러 포인트를 찍어 폴리곤 채우기 구현 시도기, 마지막 날. 몇가지 잘못 구현된 부분을 수정 하고, 간략화 하여 어느정도 복잡도를 가지는 영역 내를 채우는 것을 성공리에 완성 하였습니다. 아직 테스트를 해 보면 매우 복잡한 영역은 여전히 node 에서 잘못 처리되는 경우가 발견 되긴 합니다만, 이 부분은 다음 구현으로 넘기고 이번엔 완료된 것을 통해서 약간의 알고리즘 설명을 남겨 보도록 하겠습니다. 먼저 참고한 알고리즘은 Darel Rex Finley 라는 사람의 페이지를 통해서 입니다. Polygon fill algorithm 알고리즘은 알고나면 꽤 간단 합니다. 먼저, 삼각형을 하나 그린다 치면, 아래 처럼 좌표계가 만들어 지고, 이 좌표계는 vector 에 차곡 차곡 쌓이게 됩니다. 여기서 vector 는 0번째와 마지막 이 ..
여러 포인트를 찍어 폴리곤 채우기 구현 시도기, 둘째날. 이전에 polygon 내 fill 을 하기 위한 알고리즘을 파다, 여러 개선점을 찾기 위한 노력을 통해 답을 찾기 시작 하고 있습니다만, 현재 fill 을 실패 하는 이유를 찾기 위해 돌려 보고 있다 보니, 아래처럼 node 가 짝이 안맞는 경우가 생기는 것을 알았습니다. 최적화된 알고리즘 검출을 위해 re-order 등을 수행하는데도, 검출에 실패 하는 영역이 나오는 것을 보면, 이것은 다른 알고리즘을 찾아야 할 것으로 보입니다. 현재까지 돌려 본 것을 압축해서 올려 봅니다.코드 및 CBP, 디버깅용 바이너리 파일 압축본 다운로드 필요사항: Code::Blocks, MinGW-W64, FLTK-1.3.4 (또는 FLTK-1.3.4-TS).