Layer를 등록해서 그리는 렌더링 파이프라인
- TODO
-
- frame을 기록하는 클래스의 경우 stop되고 다시 시작되면 0부터 시작하므로 자기가 기록한 frame이 현재 frame보다 클 때 보정 처리를 반드시 해줘야 한다. 이는 나중에 frame이 int 풀카운트가 되었을 때 처리가 있을지도 모르므로 필수
Members
-
staticcollie.Renderer.DEBUG_MAX_DELAYNumber
-
가상 딜레이 최대값(랜덤하게 발생, ms)
-
staticcollie.Renderer.DEBUG_RENDERING_MODEString
-
렌더링 모드 [auto|canvas|dom]
-
staticcollie.Renderer.DEBUG_USE_DELAYBoolean
-
이 값을 true로 변경하면 가상 딜레이를 발생할 수 있다. 가상 딜레이 발생 상태에서는 requestAnimationFrame이 동작하지 않으며 타이머 등이 스킵될 때 어떻게 동작하는지 확인할 수 있다.
Example
collie.Renderer.DEBUG_USE_DELAY = true; collie.Renderer.DEBUG_MAX_DELAY = 200; collie.Renderer.start();
-
staticcollie.Renderer.DEFAULT_FPSString
-
기본 렌더링 FPS
-
staticcollie.Renderer.DELAY_LIMITNumber
-
If The Renderer can't render the screen in this time, It should be paused. (ms)
-
staticcollie.Renderer.RETINA_DISPLAYString Boolean
-
레티나 디스플레이 여부 auto 값일 경우 자동 판단, true/false 값은 수동 auto 일 때 자동 판단 됨
-
staticcollie.Renderer.USE_AUTO_PAUSEBoolean
-
자동 일시정지를 해제한다
Methods
-
staticcollie.Renderer.addLayer(oLayer)
-
렌더러에 적용할 레이어를 추가 한다
Name Type Description oLayer
collie.Layer -
staticcollie.Renderer.draw(nSkippedFrame)
-
원하는 프레임으로 스킵해서 그린다
Name Type Description nSkippedFrame
Number 값이 없으면 스킵 없이, 값이 있으면 그 값만큼 프레임을 스킵해서 그린다
-
staticcollie.Renderer.getDuration(){Number}
-
렌더러에 적용된 시간을 반환
-
staticcollie.Renderer.getElement(){HTMLElement}
-
렌더러의 컨테이너 엘리먼트를 반환
-
staticcollie.Renderer.getInfo(){Object}
-
렌더러 정보를 반환
Returns:
Name Type Description htInfo
Object Name Type Description frame
Number 현재 프레임 수 skippedFrame
Number 지나간 누적 프레임 수 htInfo.fps
Number duration
Number 지연시간(ms) renderingTime
Number 이전에 발생했던 렌더링 시간(ms) beforeFrameTime
Number 이전에 렌더러가 실행됐던 시간(timestamp) -
staticcollie.Renderer.getLayers(){Array}
-
등록된 레이어를 모두 반환
-
staticcollie.Renderer.getRenderingMode(){String}
-
렌더링 모드를 반환 - 두개의 방식을 섞어 쓰는 것은 속도가 느려서 1가지 방식을 사용하는 것이 낫다
-
staticcollie.Renderer.isPlaying(){Boolean}
-
현재 실행 중인지 여부를 반환
-
staticcollie.Renderer.isPreventDefault(){Boolean}
-
기본 동작을 막는지 여부를 반환
Returns:
때 막는다, 기본값이 true
-
staticcollie.Renderer.isRetinaDisplay(){Boolean}
-
레티나 디스플레이를 사용하고 있는지 여부 IE9 미만에서는 무조건 false를 반환
-
staticcollie.Renderer.load(elParent)
-
표현할 레이어를 elParent에 붙인다 시작전에 반드시 해야함
Name Type Description elParent
HTMLElement | String -
staticcollie.Renderer.pause()
-
잠시 멈춘다
-
staticcollie.Renderer.refresh()
-
렌더링 엘리먼트의 위치를 갱신한다 만일 렌더링 엘리먼트의 위치가 load 후에 변경될 경우 refresh 메소드를 실행시켜줘야 한다
-
staticcollie.Renderer.removeAllLayer()
-
등록된 모든 레이어를 제거 한다
-
staticcollie.Renderer.removeLayer(oLayer)
-
렌더러에 적용한 레이어를 제거 한다
Name Type Description oLayer
collie.Layer -
staticcollie.Renderer.resize(nWidth, nHeight, bExpand)
-
렌더러에 등록된 모든 레이어의 크기를 변경 한다
Name Type Description nWidth
Number nHeight
Number bExpand
Boolean 확장할지 크기만 변경할지 여부
-
staticcollie.Renderer.resume()
-
잠시 멈춘것을 다시 실행 한다
-
staticcollie.Renderer.setPreventDefault(bPreventDefault)
-
레이어 위에서 기본 이벤트(mousemove, mousedown) 동작을 막을지 여부를 설정 한다.
Name Type Description bPreventDefault
Boolean true면 기본 동작을 막는다.
-
staticcollie.Renderer.setRenderingMode(sMode)
-
렌더링 모드를 변경 한다
Name Type Description sMode
String [auto|dom|canvas]
Example
collie를 사용하기 전에 사용해야 한다. collie.Renderer.setRenderingMode("dom"); collie.ImageManager.add({ ... }, function () { ... });
-
staticcollie.Renderer.setRetinaDisplay(vMode)
-
레티나 디스플레이 방식을 변경 한다
Name Type Description vMode
Boolean | String [false|true|"auto"]
Example
collie를 사용하기 전에 사용해야 한다. collie.Renderer.setRetinaDisplay(true); collie.ImageManager.add({ ... }, function () { ... });
-
staticcollie.Renderer.start(vDuration, fCallback)
-
렌더링 시작 - callback 안에서 false를 반환하면 rendering을 멈춘다
Name Type Description vDuration
Number | String 렌더러의 시간 간격(ms), fps를 붙이면 fps 단위로 입력된다.
fCallback
Function 프레임마다 실행할 함수, 없어도 되고 process 이벤트를 받아서 처리해도 된다.
Name Type Description frame
Number 현재 프레임
skippedFrame
Number 시간이 밀려서 지나간 프레임 수
fps
Number FPS
duration
Number 지연 시간 (ms)
Example
fps를 붙이면 FPS단위로 입력할 수 있다.
collie.Renderer.start("30fps"); collie.Renderer.start(1000 / 30);
-
staticcollie.Renderer.stop()
-
렌더링을 멈춘다
-
staticcollie.Renderer.unload()
-
부모 엘리먼트에 붙인 레이어를 지움
Events
-
pause
-
렌더러가 일시 정지 때 발생. getInfo 값이 이벤트 인자로 넘어간다
-
process
-
렌더링 진행
Name Type Description oEvent
Object Name Type Description stop
Function stop 하면 렌더링이 멈춘다
-
resume
-
렌더러가 일시 정지에서 해제될 때 발생. getInfo 값이 이벤트 인자로 넘어간다
-
start
-
렌더링 시작
Name Type Description oEvent
Object -
stop
-
렌더링 멈춤
Name Type Description oEvent
Object