Namespaces
Variants
Actions
Revision as of 07:45, 9 December 2011 by hamishwillee (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Acesso Direto à Tela (DSA)

Jump to: navigation, search
Dados do artigo

Artigo
Tradução:
Última alteração feita por hamishwillee em 09 Dec 2011


Contents

Introdução

Acesso direto à tela (do Inglês DSA - Direct Screen Access) é uma maneira de se desenhar na tela sem utilizar o servidor de janelas. Essa alternativa é mais eficiente pois evita a comunicação com o servidor, sendo recomendada para aplicações que lidam com vídeo, e jogos. Entretanto, a comunicação com o servidor de janelas é necessária em alguns momentos para se evitar acessos inválidos a dados de outras aplicações. A classe que implementa o acesso direto à tela (CDirectScreenAccess) é implementada como um objeto ativo:

class CDirectScreenAccess : public CActive;

A seguir, alguns dos membros definidos nessa classe.

DrawingRegion()

Retorna qual é a área da tela onde as operações de desenho devem ser feitas.

inline RRegion *DrawingRegion();

Gc()

Retorna o contexto gráfico que será usado para se desenhar na tela. Esse contexto é criado pela classe ao se iniciar o acesso direto através de StartL(). As partes da tela onde serão feitos os desenhos devem ser especificadas como coordenadas da janela, e a área permitida para desenho é determinada pelo objeto RRegion obtido por DrawingRegion().

inline CFbsBitGc *Gc();

NewL()

Cria uma instância da classe de acesso direto à tela, e a adiciona ao escalonador ativo atual.

static CDirectScreenAccess *NewL (RWsSession &aWs, CWsScreenDevice 
&aScreenDevice, RWindowBase &aWin, MDirectScreenAccess &aAbort);

ScreenDevice()

Recupera a tela onde as operações de desenho serão realizadas.

inline CFbsScreenDevice *&ScreenDevice();

StartL()

Informa o servidor de janelas que o acesso direto à tela será iniciado, de modo que um contexto gráfico será criado para que seja possível desenhar na tela.

void StartL();

Observações

A interface MDirectScreenAccess deve ser usada para reiniciar o acesso direto à tela, quando for necessário.

virtual void Restart (RDirectScreenAccess::TTerminationReasons aReason)=0;

Essa função é chamada pelo servidor de janelas para indicar que o acesso direto pode ser reiniciado.

Essa função deve chamar o método StartL() da classe CDirectScreenAccess. É importante observar que esse método pode gerar um abandono ("leave"), que deve ser capturado. Caso um abandono seja gerado, significa que o acesso direto não pode ser reiniciado. Quando o método StartL() for executado, a área permitida para desenho será recalculada. Isso significa que se o acesso foi interrompido porque outra janela foi sobreposta à janela que estava sendo desenhada, essa janela sobreposta não será sobrescrita quando o acesso direto for reiniciado.

Links

126 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved