C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[913] Graphics32 설치와 사용에 관한 약간의 ..
김태선 [cppbuilder] 11543 읽음    2009-08-12 13:13
Graphics32는 델파이나 카일릭스상에서 고속 32비트 그래픽 핸드링을 위해 디자인 되어진 라이브러리이다.
32비트 픽셀 포멧으로 최적화 되어진, 픽셀과 로우 그래픽용 빠른 연산을 제공 한다.
대부분의 경우 Graphics32은 표준 TCanvas보다 성능이 우수하다.
속도가 필요한 부분은 어셈블리로 구현해 퍼픽셀 제어는 거의 100배고, 라인 그리기는 2~5배 정도 빠르다.
* 퍼픽셀은 픽셀 각각을 대상으로 작업하는 것을 말함.

특징은
- 표준 TBitmap보다 100배 빠른 퍼픽셀 제어.
- 고성능 비트맵 알파 블렌딩(퍼픽셀 알파 블랜딩 포함)
- 픽셀 라인 폴리곤 안티알리아싱의 서브픽셀 정밀도 (알파 블렌딩 조합해서)
   * 서브픽셀은 주 드로잉 픽셀의 자연스러움을 만들기 위해 주픽셀 옆에 보조로 톤을 달리하는 등의 방법으로 그려주는 픽셀.
- 자유로운 폴리곤 변형과 커스텀 채우기.
- 비트맵 리샘플링 고품질 재창조용 필터.
- 독특한 state-of-the-art 레스터화 시스템.
- 비트맵 추가 변형 : 회전 스케일링, 등 (서브픽셀 연산 포함)
- 비트맵의 자유로운 투영 변형.
- 비트맵의 자유로운 리매핑 변형
- 최고 품질의 유연한 슈퍼샘플링 구현.
- 깜빡임 없는 이미지 표시 컴포넌트. 향상된 마이크로틸의 리페인트 최적화 기법의 최적화 더블 버퍼링 적용.
- 쉬운 사용법의 멀티 오버레이 레이어 커스터마이징.
- 안전한 멀티쓰레딩을 위한 비트맵 Locking.
- 알파채널과 RGB 프로퍼티 에디터.
- 표준 TPicture의 디자인 타임시 이미지 로딩 포멧 지원.

등을 제시하고 있는데, DirectX로 직접 제어하는 것이 아니라면 고속으로 그래픽을 처리하기 위한 최고의 선택 중에 하나가 될 것 같네요.

컴포넌트는 자료실에 있는 Graphics32 1.8.3 을 받아 설치하면 된다.

먼저 GR32_CB6.bpk 를 설치하고
다음으로 디자인타임 패키지 GR32_DSGN_CB6.bpk 를 설치하면 된다.

하지만 빌더에서는 컴파일 도중에 에러를 내는데
빌더용 조건 컴파일 안에  제작자가 동일한 함수를 두번 구현해서 생기는 문제이니
에러가 나는 함수 부분을 주석 처리하고 설치하면 된다.

그러면 컴포넌트 탭에 설치한 컴포넌트가 나타나니 즐겁게 사용하면 된다.

그런데 최종 컴파일 결과물을 단독 실행화일로 만들면
컴파일/링크 과정에서 에러 없이 잘 되는데,
실행해보면 TImage32.Bitmap 부분의 제어가 잘 안되는 현상이 생기는 경우가 있다.
jpg 파일을 못 읽어 들인다던지 Bitmap 포인트가 NULL로 계속 있는 현상이 생긴다.
이는 Graphics32에 필요한 obj 가 다른 obj 로 잘못 링크되어서 생긴 현상으로 추정 되는데,
프로젝트 옵션의 Directories/Conditionals 에서
Include Path와 Library Path 각각에 Graphics32 가 설치된 폴더를 최상위로 설정해주면 된다.
그러면 Graphics32 컴포넌트 파일을 우선적으로 링크하기 때문에 해결된다.

이렇게 하면 실로 엄청난 속도로 제어 할 수 있는
GR32 의 위력을 쉽게 즐길수 있게 된다.


이 테스트는 빌더6에서 이루어짐.


번역 자료와 합쳐서 쓰다 보니 경어체가 아니라서 죄송합니다.
망치 [mangchy]   2009-08-12 15:48 X
깔끔하게 정리 해주셨네요...
김태선 [cppbuilder]   2012-08-17 15:19 X
gr32.hpp에서

TRect 재정의 한 것 지워 줘야 합니다.
망구 필요없습니다.

+ -

관련 글 리스트
913 Graphics32 설치와 사용에 관한 약간의 .. 김태선 11543 2009/08/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.