'2009/05'에 해당되는 글 9건

  1. 2009/05/31 IOCP를 이용한 서버를 만들면서... (6)
  2. 2009/05/23 이를 어찌..
  3. 2009/05/15 99% 완성 (6)
  4. 2009/05/14 freetype에서 horiBearingY 구하기
  5. 2009/05/13 노가다의 산물
  6. 2009/05/08 gpg6 (4)
  7. 2009/05/06 폰트렌더러 완성
  8. 2009/05/05 폰트 렌더러 완성 단계..
  9. 2009/05/05 그림자 구현
대략 구조가 accept를 하는 스레드와 worker스레드로 서버가 구성되어있다.

accept를 하는 스레드는 큰 입출력이 필요 없으므로 간결한 구조로 가기 위해 non-blocking 모드로 소켓을 생성하고 무한 루프를 돌렸다.

그리고 서버 가용성 테스트를 위해서 0.05초에 약 170바이트 정도의 패킷을 전송하는 더미 클라이언트를 64개 정도 붙였다.

그리고 나서 accept 스레드를 종료하여 서버를 종료 시키기 위해 루프가 멎을수 있도록 조건값을 변경 시켰다.

그런데도 감감 무소식......

디버거로 accept 스레드의 루프에 브레이크 포인트를 걸었으나 안걸림...

이게 뭔일이디야..

그래서 혹시나 해서 EventSelect로 바꿔보았다..

잘 된다...

이걸 어찌 설명해야할지.. IOCP하고 non-blocking 소켓은 쓰지 말아야 하는건가?
클라이언트를 한두개 붙였을 때는 non-blocking으로 해도 잘 걸렸는데 worker스레드가 좀 바쁘게 돌아가면 감감 무소식이다.

스레드 우선순위에서 밀리는 것인가..

모르겠군..
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/31 06:44 2009/05/31 06:44

이를 어찌..

생활 : 2009/05/23 23:47
대한민국 역사상 언제 다시 나올지 모를 큰 별이 졌다.

민주주의가 무엇인지 보여준 대통령..
헌법 제 1조를 제대로 수행했던 대통령..
대통령은 국민 위에 군림하는 자가 아닌 국민의 소리를 듣는 자라는 것을 알려준 대통령..

그 동안 얼마나 마음 고생이 심하셨겠습니까.

이제 편히 잠드십시오.

나머지는 후손인 저희들과 역사가 진실을 밝힐 것입니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/23 23:47 2009/05/23 23:47

99% 완성

DCGUI 라이브러리 : 2009/05/15 21:03
다음 버전인 0.2의 릴리즈가 거의 다가왔다.

작업목록 중에 기능은 전부 구현을 했고 이제 남은건.. 문.서.화

어쩌면 이게 더 오래 걸릴지도 모르는 그런...


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/15 21:03 2009/05/15 21:03
기존에 폰트를 렌더링 할 시 baseline을 계산하기 위해 ascender를 계산 한 후 face->glyph->bitmap_top을 이용하여 baseline과 합하여 폰트가 그려질 0,0을 찾았다.

그런데 이것이 일정 크기가 넘어가면 baseline이 안맞는 현상이 발생했다.

조사해보니 bitmap_top이 문제였다. 이 값이 계속 0이 나와서 매뉴얼을 다시 뒤져보니..

이 값은 FT_GLYPH_FORMAT_BITMAP일 때만 유효하다더라..

즉.. 일정 크기가 넘어가면 트루타입 폰트는 스케일이 가능한 FT_GLYPH_FORMAT_OUTLINE으로 리턴을 한다. 따라서 bitmap_top을 이용해서는 안되고..

face->glyph->metrics.horiBearingY를 이용하여야 한다. 이 값은 FT_GLYPH_FORMAT_BITMAP일 때도 유효하니 무조건 이거만 써도 무방하다. 이 값을 픽셀값으로 변환할려면 64로 나누어야한다.

ps. freetype 튜토리얼 개나 주세요.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/14 17:51 2009/05/14 17:51
사용자 삽입 이미지

클릭하세요.
























목표했던 모든 효과 구현을 완료했다. 아.. 노가다..

대략 그림자가 많이 마음에 안들기에 그림자 렌더링 방식을 다른걸로 바꿔야겠다.

위 그림을 클릭하면 나오는 모든 효과가 다 된다.

아직 한두가지 정도 마무리 해야할 추가사항이 있기 때문에 그것을 완료한 다음에 릴리즈 할 생각이다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/13 21:24 2009/05/13 21:24

gpg6

서적/프로그래밍 : 2009/05/08 10:42
사용자 삽입 이미지


잘 볼게요. 사랑해요. ♡
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/08 10:42 2009/05/08 10:42
사용자 삽입 이미지

클릭하세요

























남은 정렬과 클리핑까지 구현하여 원래 쓰던 IDX3DFont를 완전 대체 했다.
추가적으로 이텔릭체와 블러기능 그리고 IDX3DFont의 workbreak, calrect, expandtabs구현이 남았는데 이건 천천히..

다 만들고 나니 기존의 IDX3DFont하고는 다르게 성능이 많이 올라갔다. 역시 IDX3DFont는 발로 만든거였던듯...

ps. 약 2주 반이면 만들걸 여태 귀찮아서 이제서야 만들었다. 덜덜
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/06 07:15 2009/05/06 07:15
캐삽질을 한 보람이 있다. 기존보다 무려 약 200프레임정도 성능향상이 생겼다..

뭐 200프레임이라고 해봤자 눈꼽만치이지만.. 그래도 나중에 구현할 문장 단위 캐싱을 하면 더 성능이 올라갈 확신을 갖을수 있게 되었다.

사용자 삽입 이미지

Before

사용자 삽입 이미지

After


각종 효과도 넣을수 있으므로 아래와 같이 이상한 짓거리도 가능하다.
사용자 삽입 이미지

클릭하세요


























기존 코드에 각종 효과에 대한 꾸민게 없으니 기본값으로 렌더링을 하기 때문에 저렇게 좀 지저분하게 나오지만 적절히 색을 넣어주면 그럭저럭 예쁘게 나올수 있을 것이라고 생각된다.

아직 완성은 아니고 보시다시피 정렬도 해야하고 클리핑도 남아있다.

거기까지 하면 기존 기능 대체는 완료 될듯 하다..
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/05 01:33 2009/05/05 01:33
어떻게 하면 예쁘게 그림자를 그릴수 있을까 생각을 해봤지만 딱히 좋은 방법은 떠오르지는 않았다.
이미지를 그림자 방향으로 늘린후 안티앨리어싱을 준걸로 써볼까도 했지만...

딱히 예쁜것도 아니고 중요한건 구현하기가 까다롭더라..

그래서 그냥 그림자 방향으로 "거리"와 "깊이"와 "감쇠"를 파라메터로 줘서 그냥 찍어줬다.

좌측, 우측, 상단, 하단, 좌상, 좌하, 우상, 우하 로 전부 가능하게 구현을 했다.
사용자 삽입 이미지

클릭하세요
























역시 나쁘지는 않은듯..
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/05 01:26 2009/05/05 01:26