U E D R , A S I H C RSS

MFC/Raster Operation

{{| |}}

1. ROP?

CDC는 다양한 드로윙 모드를 제공한다. ROP는 그런 드로윙 모드의 하나로, 동적으로 변화되는 그림을 그릴때 그림을 지우고 다시그리는 작업을 하는데 유용하다.
~cpp CDC::SetROP2() 라는 함수로 제공하며 RasterOPerationTo의 약자이다.

2. CDC Drawing Modes

R2_BLACK 모든 그림은 검은색
R2_WHITE 모든 그림은 흰색
R2_NOP 아무런 그리기 작업을 하지 않음
R2_NOT 그림이 화면색의 반대가 된다. 출력이 항상 보이게 하려고 할때 쓰인다.
R2_COPYPEN 펜색으로 그려짐
R2_NOTCOPYPEN 펜색과 반대의 색으로 그려짐
R2_MERGEPENNOT 펜의 색과 배경과 반대색을 OR로 만들어진 색으로 그려짐
R2_MASKPENNOT 펜 색과 배경과 반대색을 AND로 만들어진 색으로 그려짐
R2_MERGENOTPEN 펜의 반대색과 배경색을 OR로 연산한 색으로 그려짐
R2_MASKNOTPEN 펜의 반대색과 배경색을 AND로 연산한 색으로 그려짐
R2_MERGEPEN 펜색과 배경색을 OR로 연산한 색으로 그려짐
R2_NOTMERGEPEN R2_MERGEPEN의 반대색으로 그려짐
R2_MASKPEN 배경색과 펜의 색을 AND로 연산한 색으로 그려짐
R2_NOTMASKPEN R2_MASKPEN색과 반대의 색으로 그려짐
R2_XORPEN 펜과 배경색을 XOR연산한 결과로 그려짐
R2_NOTXORPEN R2_XORPEN과 반대의 색으로 그려짐
ROP와 관계된 모드는 R2_NOTXORPEN이다.

3. Explaination

배경이 흰색이고 그림을 그리는 색이 붉은 색이라면?
R G B
BACK>WHITE 1 1 1
PEN>RED 1 0 0
XOR 0 1 1
NOTXOR 1 0 0
상기에서 보듯 결과는 붉은 색이된다.

이제 그려진 그림위에 다시 붉은 색으로 그림을 그린다고 가정해보자.
R G B
BACK>RED 1 0 0
PEN>RED 1 0 0
XOR 0 0 0
NOTXOR 1 1 1
상기에서 보듯 원래의 배경 색으로 다시 채워진 것을 확인할 수 있다.

이를 이용하면 그림을 지우는 과정을 하지 않고 단순히 동일한 그림을 그림으로써 기존의 그려진 그림을 간단히 지우는 것이 가능하다.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:42
Processing time 0.0324 sec