Beispiel #1
0
void PageViewportControllerClientEfl::setContentsScale(float newScale, bool treatAsInitialValue)
{
    if (treatAsInitialValue)
        setViewportPosition(FloatPoint(0, 0));

    m_viewImpl->setScaleFactor(newScale);
}
Beispiel #2
0
//--------------------------------------------------------------------------------
bool Renderer::InitDX(HWND hWnd)
{
	IDirect3D9 * _pD3D;

	// Intento crear el objeto DX9
	_pD3D = Direct3DCreate9(D3D_SDK_VERSION);	

	if (!_pD3D)
		return false;

	//guardo la resolución actual del escritorio
	D3DDISPLAYMODE displayMode;
	HRESULT hr = _pD3D->GetAdapterDisplayMode (
					D3DADAPTER_DEFAULT,
			 		&displayMode
				);

	if (hr!=D3D_OK)
		return false;

	// Fijo los valores a la estructura D3DPRESENT_PARAMETERS
	D3DPRESENT_PARAMETERS d3dPresentParameters;
	ZeroMemory( &d3dPresentParameters, sizeof(d3dPresentParameters));
	d3dPresentParameters.BackBufferFormat = displayMode.Format;
	d3dPresentParameters.Windowed = true;
	d3dPresentParameters.BackBufferCount = 1; 
	d3dPresentParameters.SwapEffect = D3DSWAPEFFECT_DISCARD;
	d3dPresentParameters.hDeviceWindow = 0; 
	d3dPresentParameters.Flags = 0;
	d3dPresentParameters.EnableAutoDepthStencil = TRUE;
	d3dPresentParameters.AutoDepthStencilFormat = D3DFMT_D24S8; d3dPresentParameters.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
	d3dPresentParameters.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

	//invocaremos al método CreateDevice
	hr = _pD3D->CreateDevice(
			D3DADAPTER_DEFAULT,
 			D3DDEVTYPE_HAL,
			hWnd,
			D3DCREATE_HARDWARE_VERTEXPROCESSING,
			&d3dPresentParameters,
			&m_pkDevice
		);

	if (hr!=D3D_OK)
	{
		hr = _pD3D->CreateDevice(
				D3DADAPTER_DEFAULT,
 				D3DDEVTYPE_HAL,
				hWnd,
				D3DCREATE_SOFTWARE_VERTEXPROCESSING,
				&d3dPresentParameters,
				&m_pkDevice
			);
	}

	if (hr!=D3D_OK)
		return false;

	if (!m_pkDevice)
		return false;

	m_pkDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
	//m_pkDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
	m_pkDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
	m_pkDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
	m_pkDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
	m_pkDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
	m_pkDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
	m_pkDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
	
	//D3DXMatrixIdentity(&d3dmat);
	//D3DXMatrixTranslation(& d3dmat, 0,  0, 1.0f);
	//D3DXMatrixRotationZ(& d3dmat, 0);
	//hr = m_pkDevice->SetTransform(D3DTS_WORLD, &d3dmat);

	if (hr!=D3D_OK)
		return false;

	setViewportPosition();

	D3DVIEWPORT9 kViewport;

	m_pkDevice->GetViewport(&kViewport);

	D3DXMatrixOrthoLH(&m_mProjectionMatrix, (float) kViewport.Width, (float) kViewport.Height, -25, 25);
	hr = m_pkDevice->SetTransform(D3DTS_PROJECTION, &m_mProjectionMatrix);

	if (hr!=D3D_OK)
		return false;

	// create the color buffer
	if(!m_pkVertexBuffer.Create(m_pkDevice, true))
		return false;

	// create the texture buffer
	if(!m_kTextureBuffer.Create(m_pkDevice, true))
		return false;

	return true;
}