http://www.gpgstudy.../viewtopic.php?t=566
http://www.gpgstudy.../viewtopic.php?t=627
http://www.gpgstudy.../viewtopic.php?t=860
* get - 가장 흔히 쓰이며 의미하는 범위도 가장 넓다. GetDC(), getInstance(), getPosition() 등등. get은 아래에 나열된 다른 모든 돌려주는 동사들을 포괄한다. 그러나, get의 용도를 최대한 한정시킨다면 주로 ‘이미 계산되어 있는 객체의 속성 또는 시스템의 특정 상태를 돌려주며 상태, 시스템을 변경하거나 어떠한 복잡한 처리를 하지 않는’ 함수에 쓰는 것이 좋다고 본다.
* retrieve - get에 비해 이것은 반환할 결과를 찾기 위한 처리(주로 검색)가 일어남을
암시한다. 필요하다면 이 동사는 search 같은 실제 수행 동사와 get으로 나눌 수 있다.
예:
aCheapestApple = anAppleBox.retrieveApple(CHEAPEST);
=>
anAppleBox.search(CHEAPEST);
aCheapestApple =
anAppleBox.getSearchResult();
* acquire - 제한된 자원을 독점적으로 확보한다는 뜻이 있다. 예를 들어 주어진 윈도우 또는
시스템 전체에 DC가 하나이며 GetDC()로 얻은 DC를 ReleaseDC()로 풀기 전까지는 혼자만 사용해야 하는 상황이라고 하자. 그런
경우라면 GetDC() 보다는 AcquireDC()가 더 적합하다. 반환값은 확보한 객체 자체나 포인터, 핸들 등이다. 반대말은 release나
unacquire(get에 대해 release를 사용한다면 acquire에 대해서는 unacquire를 사용해서 구분해 주는 것이 좋을 것임).
예:
AudioManager AudioMgr = new DxAudioManagerImpl();
...
AudioDevice* anAudioDevice = AudioMgr.acquireDevice();
...
AudioMgr.unacquireDevice(anAudioDevice);
* fetch -
돌려준 값을 담고 있는 컨테이너의 내부 상태가 변함을 의미한다. 주어진 컨테이너 안의 어떤 값을 가져오면 현재 값의 위치를 가리키는 포인터가
다음 값으로 이동하게 되는 경우에 fetch가 쓰인다. 데이터베이스 API에서 흔히 볼 수 있다. 스택의 pop과도 비슷하다. 또한 파일
시스템의 많은 함수들이 이러한 fetch 식으로 작동한다. 이는 moveNext와 get으로 분리될 수 있다.
예:
UnitList.reset();
pUnit1 = UnitList.fetch();
pUnit2 =
UnitList.fetch();
=>
UnitList.moveFirst();
pUnit1 =
UnitList.getUnit();
UnitList.moveNext();
pUnit2 = UnitList.getUnit();
* be 동사와 조동사 - 이들은 어떠한 상태 또는 여부를 뜻하는 부울 값을 돌려줄 때 주로
쓰인다.
예:
while ( isDone ) {
if ( currentUnit.hasWeapon() ) ....
....
}
2. 객체의 상태를 변경하는 함수에 주로 쓰이는
동사들
객체 또는 현재 범위의 어떤 값을 변경하는 함수들에 가장 흔히 쓰이는 동사는 set이다. 이런 동사들은
반환값이 없거나 또는 함수의 성공 여부를 알려주는 반환값을 가진다.
* set -
가장 흔하게 쓰인다. 설명이 필요없겠지만 굳이 부연 설명을 하자면, get의 반대물이라는 차원에서, 상태의 변경에 복잡한 처리가 일어나지 않는
비교적 단순한 코드로 된 함수에 적합하다.
그래픽 시스템
display - 실제의 시각적 변화를
일으킨다는 의미가 있다(버퍼 스왑 등 실제 비디오 메모리 갱신의 차원에서). 또는 아래의 동사들을 포괄하는 고차원 함수에도 쓰인다(특정 그래픽
API에 국한되지 않는...)
render - display와 비슷하나 내부 버퍼 메모리의 갱신만 의미할 수도 있다. 즉
render 후 상황에 따라 display가 수행되는 등. render부터는 특정 그래픽 API에 국한된 함수에 가까와진다. 목적어를 가질 수
있다(renderScene, renderBackground 등)
draw - 개별 데이터나 개별 개체를 그린다는 의미로 많이
쓰인다. Model.draw()나 drawText() 등. render 안에서 일어나는 경우가 많다.
put - 주로 2D에서
점이나 스프라이트를 ‘찍는다’는 의미로 쓰인다. 실제의 시각적 변화보다는 내부 메모리에서의 변화일 가능성이 크다. 3D에서는 별로 쓰이지 않음.
목적어를 가지는 경우가 많다(putPixel, putSprite 등)
flush - 그래픽이나 장면 데이터를 스트림으로 간주할 때
쓰인다. 지금까지 명령 버퍼 또는 프레임 버퍼에 쌓여 있는 데이터를 실제 장치로 밀어 내보낸다는 의미를 가진다.
|
'프로그래밍(Programming) > c++, 11, 14 , 17, 20' 카테고리의 다른 글
리터럴 = 숫자 또는 문자 , const 키워드가 아님 (0) | 2012.11.01 |
---|---|
포인터와 const (0) | 2012.11.01 |
C++ virtual base 클래스 (0) | 2012.10.31 |
void 형변환에 관하여 %p (0) | 2012.10.31 |
상속, 포함관계 의 생성자 소멸자 호출 관계. (0) | 2012.10.31 |