Compartilhar via


Creating a Direct3D Mobile Device

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Depois que seu aplicativo determinou quais tipos dispositivo estão disponível em seu hardware hospedar ele pode criar um real dispositivo. Um chamar para o IDirect3DMobile::CreateDevice método será criar instância um objeto para o dispositivo e retornar um IDirect3DMobileDevice interface para ele.

Como parte de chamar para IDirect3DMobile::CreateDevice o aplicativo deve especificar um válido identificador janela que será o foco para as operações Direct3D Mobile até que o dispositivo for destruído. Este chamar de criação dispositivo também estabelece o segmento Comportamento para o dispositivo.

Por padrão, Microsoft ® Direct3D ® Mobile é capaz de sincronizar acessar para suas estruturas dados tais que múltiplo segmentos no aplicativo pode acessar Direct3D Mobile simultaneamente. Você pode desativar esse comportamento usar como padrão para obter melhor desempenho em seu aplicativo se seu aplicativo não for de vários segmentos ou se seu aplicativo fornece sua própria sincronização.

A outra variável que fornece um aplicativo é um ponteiro para um D3DMPRESENT_PARAMETERS estrutura. Essa estrutura define o comportamento do encadear trocar que é criada implicitamente quando o dispositivo é criado.

Observação

Todos os dispositivos processamento criado por um determinado objeto Direct3D Mobile compartilhar o mesmo físico recursos.Embora seu aplicativo pode criar múltiplo dispositivos processamento de um único objeto Direct3DMobile, porque eles compartilhar o mesmo hardware, o aplicativo será incorridas penalidades desempenho extremas.

Para criar um dispositivo Direct3D Mobile, seu aplicativo deve primeiro criar um objeto Direct3DMobile, conforme explicado na Objeto Direct3DMobile.

Primeiro, inicializar valores para o D3DMPRESENT_PARAMETERS estrutura que é usada para criar o dispositivo Direct3D. O seguinte exemplo de código mostra uma em janela aplicativo onde o buffer de fundo é invertida para a reserva frontal em VSYNC somente.

LPDIRECT3DMOBILEDEVICE d3dmDevice = NULL;

D3DMPRESENT_PARAMETERS d3dmpp; 

ZeroMemory( &d3dmpp, sizeof(d3dmpp) );
d3dmpp.Windowed   = TRUE;
d3dmpp.SwapEffect = D3DMSWAPEFFECT_COPY_VSYNC;

Em seguida, crie o dispositivo Direct3D Mobile. O seguinte IDirect3DMobile::CreateDevice chamar especifica o adaptador usar como padrão, o dispositivo usar como padrão e suporte para multithreading.

if( FAILED( g_pD3DM->CreateDevice( D3DADAPTER_DEFAULT,
                                   D3DDEVTYPE_DEFAULT, hWnd,
                                   D3DMCREATE_MULTITHREADED,
                                   &d3dmpp, &d3dmDevice ) ) )
    return E_FAIL;

Observe que um chamar para criar, versão, ou redefinir o dispositivo deve ocorrer somente no mesmo segmento como o procedimento janela da janela de foco.

Depois de criar o dispositivo, defina seu estado.

See Also

Concepts

Using Devices