void RenderHandler::OnCursorChange(CefRefPtr<CefBrowser> browser, CefCursorHandle cursor)
{
#ifdef _WIN32
	static HCURSOR s_Hand = LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND));
	static HCURSOR s_IBeam = LoadCursor(NULL, MAKEINTRESOURCE(IDC_IBEAM));
	static HCURSOR s_SizeWestEast = LoadCursor(NULL, MAKEINTRESOURCE(IDC_SIZEWE));
	static HCURSOR s_SizeNorthSouth = LoadCursor(NULL, MAKEINTRESOURCE(IDC_SIZENS));
	static HCURSOR s_SizeAll = LoadCursor(NULL, MAKEINTRESOURCE(IDC_SIZEALL));

	ChromiumDLL::eCursor ec = ChromiumDLL::CURSOR_NORMAL;

	if (cursor == s_Hand)
		ec = ChromiumDLL::CURSOR_HAND;
	else if (cursor == s_IBeam)
		ec = ChromiumDLL::CURSOR_IBEAM;
	else if (cursor == s_SizeWestEast)
		ec = ChromiumDLL::CURSOR_HAND;
	else if (cursor == s_SizeNorthSouth)
		ec = ChromiumDLL::CURSOR_IBEAM;
	else if (cursor == s_SizeAll)
		ec = ChromiumDLL::CURSOR_HAND;

	if (GetRenderCallback())
		GetRenderCallback()->onCursorChange(ec);
#endif
}
bool RenderHandler::GetViewRect(CefRefPtr<CefBrowser> browser, CefRect& rect)
{
	if (GetRenderCallback())
		return GetRenderCallback()->getViewRect(rect.x, rect.y, rect.width, rect.height);

	return false;
}
void RenderStrategy::CallRenderCallback( content::Ref< Scene > scene )
{
    if ( GetRenderCallback() != NULL )
    {
        if ( !RefIsNull( scene ) )
        {
            GetRenderCallback()->Call( reinterpret_cast< void* >( const_cast< Scene* >( scene.GetRawPointer() ) ) );
        }
        else
        {
            GetRenderCallback()->Call( NULL );
        }
    } 
}
void RenderHandler::OnPaint(CefRefPtr<CefBrowser> browser,
	PaintElementType type,
	const RectList& dirtyRects,
	const void* buffer,
	int width, int height)
{
	ChromiumDLL::RefPtr<ChromiumDLL::ChromiumPaintInfo> info = new PaintInfo(dirtyRects, buffer, width, height);

	if (type == PET_VIEW)
	{
		if (GetRenderCallback())
			GetRenderCallback()->onPaint(info);
	}
	else if (type == PET_POPUP)
	{
		if (GetRenderPopupCallback())
			GetRenderPopupCallback()->onPUPaint(info);
	}
}